Skip to content

Latest commit

 

History

History
1690 lines (1369 loc) · 212 KB

File metadata and controls

1690 lines (1369 loc) · 212 KB

1.10.0 (2026-03-14)

Highlights

This will be the final 1.x release before 2.0!

  • Fuzzy matching now builds on stable Rust!
  • Added many new prebuilt binary targets (arm64/x86_64 OpenBSD and FreeBSD, arm64 Windows)
  • :h 'formatoptions' no longer breaks auto insert

Features

  • add aarch64 support on OpenBSD (#2441) (be47387)
  • download: support glob in force_version='v* (#2408) (0036d63)
  • health: display OS/Arch for unsupported system_triple (#2389) (694b768)
  • keymap: allow scrolling signature window while in snippets (f9e855c)
  • path: expand env vars enclosed in braces (#2439) (816052a)
  • support FreeBSD aarch64 (#2380) (b4d3793)
  • upgrade to frizbee 0.8.2, drop nightly rust requirement (#2406) (9ecf2c7)

Bug Fixes

  • buffer: discard fs_stat check for unmodified buffers (#2398) (cd79f57)
  • clear context and items on hide from list (cadd805), closes #2355
  • cmdline: guard against nvim_parse_cmd errors for incomplete expr (658d0ec), closes #2428
  • cmdline: support complex v:lua expression (4730d96), closes #2350 #2418
  • completion items after applying preview breaking fuzzy matching (58100f4), closes #2362
  • context: include missing line field in get_bounds return value (32d8520)
  • disable auto brackets for objective-c/objective-c++ (47d8c7d), closes #1977
  • disable auto-wrap during completion to prevent preview undo errors (#2378) (d2fcad3)
  • disable formatoptions 'a' during completion and wrap text around paragraph if and only if it was set (#2436) (b09b847), closes #2432
  • download: check checksums on OpenBSD with sha256 command (#2437) (72c3bc2)
  • download: return error for unknown system_triple (#2392) (85666c5), closes saghen/blink.cmp#2387
  • guard against unsupported system for checksum (3586996), closes #2401
  • hide event receiving empty context (cb8840b)
  • path: expand env vars whose names contain numbers (#2440) (ec05b2d)
  • plugin: guard against nil vim.lsp.config['*'] (f85eb62), closes #2379
  • provider: prevent E5560 errors during fast events (685d862)
  • race with no auto show delay, document bug (11a8888), closes #2419
  • reload highlights on color scheme change (#2273) (8936aee)
  • restore cursor position after auto-wrap (#2426) (e9556f9), closes #2378
  • signature: use win:set_height when updating position (1d6841e)

Performance Improvements

  • buffer: more performant way to calculate the size of a buffer (#2396) (d162ef8)
  • cmdline: optimize ex search command lookups (7c80e36)

1.9.1 (2026-02-04)

Minor hotfix updating the flake.lock to use the latest rust nightly, fixing the frizbee build for nix users.

1.9.0 (2025-11-14)

Features

  • add force option to accept completions without visual feedback (3182a89)
  • cmdline: match neovim's select behavior for S-Tab (#2313) (37ce860)
  • cmdline: support v:lua custom completion (#2350) (2b4d146)
  • keymaps: implemented more detailed descriptions (#2282) (20756cf)
  • nix: change plugin pname to blink.cmp (57d900e)
  • support for FreeBSD x86_64 (#2326) (18712d9)

Bug Fixes

  • cmdline: escape only unquoted args with spaces (39ce844), closes #2301
  • cmdline: handle path-like first arguments in :! shellcmd (74967d4), closes #2272
  • comments (#2297) (3b83374)
  • documentation draw() function crashing on unmodifiable buffer (#2319) (5074242)
  • don't clear last_char on transient mode changes (#2325) (b137f63), closes #2323
  • explicitly target temp buffer in dot-repeat (820f1dd), closes #2330
  • ghost_text: ensure display across settings (b14922e)
  • ghost_text: handle multibyte chars and improve performance (#2252) (73ea297)
  • ghost_text: prevent highlight blending (ceed154), closes #2320
  • keymap: add missing return in cmdline preset (716967c)
  • keymap: assert description defined before checking if fallback (e72fc44)
  • keymap: infinite recursion on fallback (f631fce), closes #2314
  • menu: always defer menu display through event loop (5beb962), closes #1932
  • nix: specify linker args for the Darwin build (#2335) (1769b62)
  • plugin: respect user LSP capabilities in init (7beba91), closes #2288
  • provider: make enabled flag respect user config properly (2e4e54b), closes #2251
  • provider: respect min_keyword_length over global setting (#2354) (e05c91f)
  • signature: enable trigger after show signature manually (#2243) (7a97c64)
  • signature: Update active parameter to use line and col range (#2296) (b6f04e8)
  • terminal: handle TermRequest race condition with pcall (2b6c8dc), closes #2322
  • text_edits: only restore buflisted for non-file buffers (0cd7c4c), closes #2261
  • usercmd: subcmd completion and error handling (#2276) (f132267)
  • window: make popup windows unmodifiable (#2254) (d017b6f)

1.8.0 (2025-11-14)

Highlights

  • Frizbee updated to 0.6.0 for ~2x performance boost
  • Mostly eliminated overhead while running macros
  • Removed stat calls and reduced memory usage in path source

Features

  • allow string return in keymap (#2144) (7fc7947)
  • cmdline: enable buffer source for grep commands (1596716), closes #2251
  • fuzzy: allow setting sort list as a function (#2189) (138314a)

Bug Fixes

  • blink.cmp.KeymapCommand type annotations (#2180) (a999ddc)
  • clamp the start and end lines of the range (#2177) (89c196f), closes #2170
  • cmdline: handle :=expr for proper Lua expression completion (2fcf66a)
  • cmdline: skip filename modifiers detection when using help command (cb87357), closes #2211
  • cmdline: skip handling command separator during path completion (cc8c9b7), closes #2192
  • correct usage of 'e.g.' and 'i.e.' in documentation (1e96a5b)
  • disable in macros (afc4f4d), closes #2161
  • don't modify global &iskeyword (#2223) (8743384)
  • ellipsis double width replacement not applied (#2225) (312097b)
  • injected per-filetype providers not inheriting default providers (40380e7)
  • luasnip: only pass fallback_match if different from line_to_cursor (a60d8c0)
  • luasnip: use actual cursor pos for snippet match (#2206) (de2f709)
  • menu: add missing loading item properties (ab1b366), closes #2
  • nix: fix Cargo sandbox builds on Darwin via Fenix update (#2226) (d93e01a)
  • snippet: handle $VAR and ${VAR} variable forms correctly (a4ab037), closes #2212
  • snippets: ensure proper espcaping of special chars (#2239) (230ccf8), closes #2072 #2028
  • snippets: provide textEdit field for builtin snippet (#2233) (2408f14), closes #2159
  • stick to vsnip API in vimscript (#2197) (5eb4e7f)

Performance Improvements

  • path: drop unused stat calls (2b44b9c), closes #2196
  • path: improve async dir scan with chunked callbacks (#2204) (5037cfa), closes #2196
  • path: limit max entries per directory to 5000 (5b4055e), closes #2196

1.7.0 (2025-09-15)

Highlights

  • Configurable delay before showing completion menu (completion.menu.auto_show_delay_ms)
  • Added :BlinkCmp build command for building fuzzy matching library from source, primarily for vim.pack users building from soruce
  • Dropped LMDB in favor of pure Rust implementation for frecency DB, resolving neovim crashing on accepting completions
    • Moved from ~/.local/share/nvim/blink/cmp/fuzzy.db to ~/.local/state/nvim/blink/cmp/frecency.dat
  • Added support for vsnip via snippets.preset = 'vsnip'
  • Fixed stutter on InsertEnter when using snippets with TM_SELECTED_TEXT (such as with friendly-snippets in latex)
  • Misc cmdline fixes/performance improvements

Features

  • completion.menu.auto_show_delay_ms option (debe907), closes #619
  • scroll_signature_up/down keymap commands (#2057) (b7e2404)
  • add :BlinkCmp build and :BlinkCmp build-log commands (4c6a29e)
  • add show_and_insert_or_accept_single keymap, set as <Tab> in cmdline (#2037) (a93cdb8), closes #2032
  • add snippet_indicator option #2034 (#2038) (5e1c0e8)
  • add snippets.preset = 'vsnip' (#2110) (221c3d8)
  • append-only frecency database, drop LMDB (#2136) (f1c3905)
  • brackets: add css pseudo-class exceptions (#2054) (e3f28f1), closes #2052
  • cmdline: handle ex special characters and filename modifiers (#2074) (f6ca10f), closes #2068
  • fuzzy: make frecency database path configurable (#2061) (b8154b4), closes #2006
  • keymap: add jump_by option to navigate by item property (6a84282), closes #1890
  • keymap: add fallback action to mapping (#2064) (d9fa997), closes #2063
  • luasnip: pass matched part of trigger to luasnip. (#2132) (6bceed7)
  • remove item.documentation.render (aeba0f0)
  • snippets: add option sources.providers.snippets.opts.use_label_description (#2094) (34e4483)

Bug Fixes

  • :BlinkCmp build working directory (5209af5)
  • add svelte to javascript auto-brackets import exception (#2152) (5a4461b), closes #2151
  • cmdline: respect wildignore during command-line completion (dc68824), closes #2083
  • cmdline: support wildcard completion in file (7b0548e), closes #2106
  • cmdline: translate mappings for use with :map (7770a67), closes #2126
  • disable frecency writing when not enabled (fa9e5fa), closes #2031
  • fuzzy: check shared lib existence before skipping download (#2055) (b745bea), closes #2048
  • ghost_text: validate buffer before redraw to prevent errors (#2050) (16b6ba0), closes #1764
  • keymap: accept completion when only one item remains (54cc521)
  • keymap: add fallback action to mapping (c375967)
  • libc detection failing on shorter triples (6d35b78), closes #2040
  • Move runtime inputs to derivation args and add libiconv for macOS compatibility (#1993) (4834ecf)
  • presets: add missing cmdline preset to hide completion on <End> (#2030) (1a5607f)
  • prevent out of bounds scrollbar position (e465c73)
  • use table.concat instead of vim.fn.join for provider list (4e9edba)
  • window: clamp highlights to prevent overflow beyond text bounds (#2049) (d73dfcb)

Performance Improvements

  • cmdline: reduce spurious cursor and char events (#1953) (6323a6d)
  • snippets: cache lazy vars when expanding vars (33f0789), closes #2024
  • snippets: fix previous attempt at caching snippet lazy vars (ce26f9f), closes #2024

Reverts

  • Move runtime inputs to derivation args and add libiconv for macOS compatibility (#1993) (a0bcede), closes #2044

1.6.0 (2025-07-24)

Highlights

  • Fuzzy matching:
    • Always prefer continuous matches over fuzzy matches (i.e. foo on foobar beats f_o_o_bar) (Change made in v1.5.0 but forgot to mention it)
    • OFFSET_PREFIX_BONUS for matching second character, if the first character is not a letter and not matched (i.e. h on _hello)
    • Lua implementation no longer ignores score_offset
  • Fixed regression where text after the cursor was not being replaced

Features

  • add .get_context() function to API (6f3ed55)
  • add count option to select_next and select_prev (796a00e), closes #569
  • add OFFSET_PREFIX_BONUS to lua matcher (2faf063)
  • add terminal_command to the completion context (#2001) (b163deb)
  • bump frizbee to 0.5.0 with offset prefix bonus (b6ea46e)
  • lazily get TM_SELECTED_TEXT for snippets (04f9f22), closes #1998
  • snippet: support variables in placeholders (277203b), closes #950
  • update menu position on selection with dynamic direction priority (d89b7e4), closes #2000

Bug Fixes

  • apply score_offset and snippet.score_offset with lua matcher (6c1d41e)
  • applying score_offset on nil match (3545f6d)
  • cmdline: avoid doubling variable scope prefixes in expression (60f446a), closes #1994
  • cmdline: improve prefix handling to avoid duplication in expression (af22c52), closes #2005
  • eager error in snippets (adaff22)
  • log errors from downloader and fallback to lua (b812f16), closes #1999
  • revert #1985 "use edit range start for compensation instead of old cursor" (4663e23), closes #2013

1.5.1 (2025-07-14)

Bug Fixes

  • add backward compatibility for offset encoding conversion (02ee0a1), closes #1988

1.5.0 (2025-07-11)

Highlights

  • ~1.5-3x global speed-up due to dropping items on BlinkCmp* autocmds
    • You may use require('blink.cmp').get_items() instead
  • Buffer source rewrite (#1964)
    • Per-buffer caching for 2-100x speed-up, depending on the number, uniqueness and size of the buffers
    • Added total size cap of 500k chars (max_total_buffer_size) with configurable rentention_order
  • Enable cmdline source in command-line-window (q:)

Thank you @soifou for practically writing the whole release!

Features

  • cache buffer items by changedtick (5e8165b)
  • add clangd hack, adding .lsp_score to completion items (ca9019c), closes #1778
  • add blink-cmp-wezterm source (#1951) (a5081e8)
  • add blink-cmp-words to community sources (#1938) (f4ecb69)
  • cmdline: autoshow for cmdwin (36de2a7)
  • cmdline: enable in command-line-window and vim filetype (78b42f6), closes #1835 #1447
  • cmdline: support getcompletiontype for cmdwin (ec03764)
  • drop BlinkCmpSourceCompletions (dc62667)
  • prefer continuous matches (#1888) (2096cf1)

Bug Fixes

  • add racket to blocked filetypes for auto brackets (f31a46e), closes #1965
  • cmdline: :s/:g/:v don't trigger auto completion (#1956) (19a2ba4)
  • cmdline: avoids unintended prefix duplication of user-defined command (36ea052)
  • cmdline: do not mutate label description for boolean option (04b8325)
  • cmdline: improve Vim expression detection and handle custom completions (fe7c974)
  • cmdline: pick last pasted char for completion, not just the first (#1952) (e84b7d9), closes #1940
  • cmdline: prepend prefix for expressions (c880c77), closes #1939
  • cmdline: prevent error when unique prefix for buffer is missing (644fef3), closes #1927
  • cmdline: prevent hangs from shellcmd completion on win32/wsl (#1933) (1cc44a3), closes #1926 #1029
  • ghost_text: prevent out-of-bounds on multiline edits (#1967) (f66e22e), closes #1197 #1739
  • handle completion type for even more edge cases (78a6275)
  • keyword suffix matching and drop leading dash in lua impl (6c4302b), closes #1792
  • lsp: filter out text completion items only for lua_ls (#1979) (2f2ebc5), closes #1838
  • luasnip: avoid false positives for in-snippet detection (#1969) (47820df), closes #1805 #1966
  • minor signature improvements (#1971) (6d6b009)
  • show_signature now ignores trigger.enabled if called directly (#1946) (83e6a29)
  • signature show failing due to opts not defined (#1949) (dad68b3)
  • use cmdline config for cmdwin, add wrapper for completion type (a4e2be4)
  • use edit range start for compensation instead of old cursor (#1985) (d2ca33f), closes #1736 #1978
  • use lsp offset encoding when compensating text edit range (17e30f3)
  • winborder: handle custom border chars (#1984) (a946054)

Performance Improvements

1.4.1 (2025-06-17)

Features

Bug Fixes

  • ! prefix completion (#1912) (9c5d823)
  • cmdline: correctly handle filetype completions (c9de9dd)
  • cmdline: skip path completion handler when using vim expressions (9da629b), closes #1922

1.4.0 (2025-06-15)

Highlights

  • Improved edit range guessing (#923)
    • Clojure and other LSPs which don't send edit ranges should no longer insert the prefix
  • Sort in rust when no lua sorts provided (in fuzzy.sorts table)
    • Improves performance by ~40% on long lists (i.e. from tailwind)
  • Resolved neovim crash on large completions, i.e. from copilot (thank you @otakenz!)
  • Major cmdline work by @soifou:
    • Paths no longer contain their prefix (such as in :e) and fuzzy match correctly
      • Escaped spaces in paths now work as expcted
    • Shows shortest unique prefix for :buffer items
    • Buffer completion on :s/foo/bar/ and :g
      • Due to an upstream issue, requires providers.buffer.opts.enable_in_ex_commands = true)
      • Note that this option disables inccommand

Features

  • add ! as cmdline trigger character (59a58b5)
  • add completion.trigger.show_on_insert option (#1796) (03c5fea)
  • buffer: add configurable sync/async buffer size thresholds (#1795) (d324508), closes #1789
  • cmdline: add buffer completion for :s and :g commands (#1734) (75c9117), closes #1625
  • completion.trigger: add show_on_backspace_* options (#1813) (0289534)
  • don't disable signature help when pumvisible (396f19a)
  • frecency: use blake3 hash as db key for accesses (#1908) (9c007ae)
  • handle multiple filetypes in per_filetype table (#1798) (becda04)
  • improved edit range guess logic (5cf9a78), closes #923
  • make max_typos optionally a number (980b09c)
  • sort in rust when no lua sorts provided (#1830) (faee548), closes #1752
  • space instead of autobrackets for lean (#1825) (cd83fee)
  • update repro.lua with mason (3e7b05e)
  • window: support function for direction_priority in menu and signature (#1873) (d59d55d), closes #1801

Bug Fixes

  • add fennel and jannet to blocked auto bracket filetypes (#1804) (a434b7b)
  • add ps1 (powershell) to blocked auto bracket filetypes (#1816) (992644b)
  • add dot-repeat hack to terminal mode (#1788) (9873411)
  • add missing comma in configuration examples (#1867) (7370740)
  • avoid overlapping signature window with popupmenu (0fc23d2)
  • buffer: deduplicate words globally (#1790) (c2bac7f), closes #1789
  • check for trigger character after semantic token auto brackets (755bc7e)
  • cmdline: use current argument for 'file' completion in input() prompts (#1821) (92029d3), closes #1817
  • completion: reset selected_item_idx on hide to prevent stale selection (#1860) (8cab663), closes #1856
  • default providers used when filetype specific sources are empty (3e4a237)
  • disable completion.trigger.show_on_insert, add to reference (084439e)
  • disabling keymaps in cmdline/term mode not working (94000bd), closes #1855
  • handle delay on :ts xx No tags file error (#1814) (fd6e9c6)
  • keymap: disable preset keymaps with false (#1859) (0d9a7e4), closes #1855
  • panic on no matched indices (bf612a5), closes #1902
  • perform keyword range checks on bytes instead of chars (30f0a7b), closes #1834
  • put output values of guess_keyword_range into a table (#1833) (f03e488)
  • rust sorting provider order (#1880) (8d0b89b), closes #1876 #1846
  • screenpos in floating window due to incorrect winid (#1853) (fe44a7d)
  • skip useless redraws when not running in Neovide (#1903) (feb34a9)
  • snippet edit range with lua implementation (29c8d72), closes #1340
  • use vim.tbl_isempty to check for empty providers table (7c76cf5)
  • window: ensure completion buffer is modifiable before rendering (#1891) (024727a), closes #1889
  • window: hide all blink windows when another completion menu is triggered (#1852) (e7dcfe4), closes #1806

Performance Improvements

  • only check for tailwind colors when doc length = 7 (02d5e15), closes #1752

1.3.1 (2025-05-15)

Bug Fixes

  • flake: aarch64 build on nix fails because of jemalloc (#1759) (ef037d0)
  • only set error notifications to err in nvim_echo (#1763) (12a530f)

1.3.1 (2025-05-14)

Bug Fixes

  • flake: aarch64 build on nix fails because of jemalloc (#1759) (ef037d0)
  • only set error notifications to err in nvim_echo (#1763) (12a530f)

1.3.0 (2025-05-13)

Features

  • add signature.trigger.show_on_accept/show_on_accept_on_trigger_character (6770a4a), closes #1722
  • add extmarks at the start of terminal commands as a utility for creating shell completions (#1747) (584e280)
  • add message on prebuilt binary download completion (0a36e07)

Bug Fixes

  • get up to date cursor in luasnip execute (3077615), closes #1740
  • guard against nil triples (cdbe943), closes #1730
  • lua implementation not respecting match_suffix option (091d09e)
  • nvim 0.10 compatibility for nvim_echo (#1760) (834e419)
  • only use largest range when item is a snippet (59507fd)
  • treat dash as keyword in lua implementation (45fcabc), closes #1756
  • use string.buffer for frecency access (6dc82a0), closes #1627

1.2.0 (2025-05-02)

Highlights

  • Fuzzy matcher performance and correctness improvements (v0.3.0..v0.4.2)
  • sources.per_filetype.*.inherit_defaults for inheriting from the default sources (docs)
  • nvim_echo for fancy notifications and error messages (Thanks @OXY2DEV!)
  • Many bug fixes

Features

  • ignore_root_slash option for path source (#1678) (5295e6a)
  • add completion.menu.draw.cursorline_priority (5b11128)
  • add sources.per_filetype.*.inherit_defaults to inherit from default (4a1a685), closes #1669
  • add bold style for border (#1687) (7856f05)
  • begin typing async tasks (a745202)
  • extend tailwind color hack to cssls (#1594) (54c5c9c)
  • ignore keyword length on trigger character (#1699) (f233029)
  • option to run select_next/prev when only ghost text is visible (a5be099), closes #1572
  • prioritize lowercase over uppercase in label sort (bdb1497), closes #1642
  • remove 1024 char limit on fuzzy (7281aed), closes #1473
  • revert show ~ indicator for items which expand as snippets (39622d1)
  • set glibc to 2.17 for linux builds (efa0b4d), closes #1482
  • show ~ indicator for items which expand as snippets (7bf9d6c), closes #1660
  • simplify repro.lua (ca7e138)
  • temporarily disable prefetching (aace22d), closes #1633
  • use blink-cmp-dot-repeat filetype for dot repeat buffer (651a3d4), closes #1623
  • use nvim_echo for emitting errors and notifs (#1523) (695a7ed), closes #973 #1628
  • use buffer events suppression hach for cmdline events (596a386), closes #1649
  • use built-in markdown renderer for documentation (30f0749), closes #1579
  • use current buffer only in search mode (dcd783e), closes #1592
  • use linebreak on documentation window (53b2b05), closes #1579

Bug Fixes

  • avoid undefined highlight group 'CmpGhostText' (#1617) (76f11c4)
  • bump frizbee to 0.4.1 (c3a5421), closes #1642 #1147
  • close dir handle on read failure in path source (7dc5a6b)
  • cmdline: handle error if getcompletion returns an error (#1700) (4e119c5)
  • default sources not being used (f1efa3b)
  • disable auto brackets by default for cpp filetype (#1595) (0528949)
  • disable auto brackets in typescript imports (72cdff5), closes #1609
  • disable Neovide drawing when setting up dot repeat (#1582) (d5943ac)
  • ghost text failing to clear (84b7b9f), closes #1581
  • ghost_text preview error on completion cancellation at buffer end (#1676) (11ed30a)
  • inconsistent menu cycling behavior (efde0c2), closes #1637
  • luasnip: guard against missing callbacks (fa7ad0a), closes #1643
  • multi-line snippet indentation when no placeholders (9ac195c), closes #1635
  • protect against non-empty empty textEdit (#1601) (6cd64bd)
  • remove unsupported params field from draw highlight type (7e313f0)
  • remove unused keys from mode specific keymaps (405bd23)
  • schedule nvim_echo (#1683) (f2e4f6a)
  • sending exact and score to lsp (e08ae37), closes #1667
  • serialization issue with draw function (#1719) (d361815)
  • snippets: strings like %20 in the register resulting in repeated errors (#1693) (4040d83)
  • unhandled terminal mode in set_cursor implementation (#1672) (07a09ac)
  • unify and correct source list type (#1622) (e16586c)

Performance Improvements

  • mark help tags as complete backwards (ea29ab1), closes #1538

1.1.1 (2025-04-03)

Bug Fixes

  • resolve failing on 0.10 due to missing client wrap (f3f4bb8)

1.1.1 (2025-04-03)

Bug Fixes

  • resolve failing on 0.10 due to missing client wrap (f3f4bb8)

1.1.0 (2025-04-03)

Highlights

  • <Tab> now shows the menu when ghost text is visible in cmdline with noice.nvim
  • Many fixes to menu unexpectedly opening or staying open (i.e. after pressing <Tab>)
  • frizbee (fuzzy matcher) updated to v0.3.0
    • Capitals now receive a bonus similar to delimiters, for better matching on PascalCase and camelCase (i.e. fb matched on fooBar beats foobar)
    • Delimiters no longer incorrectly receive a bonus when coming after a delimiter (i.e. f_b matched on foo__bar no longer beats foo_bar)
  • Cmdline shell commands have been disabled by default on windows
    • You may re-enable them by overriding the logic with sources.providers.cmdline.enabled = true
  • Recipe for kind icon with background

Features

  • bump frizbee to 0.3.0 (46188c1), closes #1147 #1473
  • cmdline: show menu on tab when ghost text visible (380548f)
  • configure lua_ls type checking (c7ceb78)
  • set kind icon default priority to 20000 (f1e1940)
  • support highlight priority for menu draw (bf2b10e)
  • use non-deprecated LSP methods when supported (033fbcc)

Bug Fixes

  • cmdline ignoring two cursor moved events after auto insert (40adb0d)
  • disable cmdline shell completions on windows by default (3350451), closes #1529 #795 #1167
  • docs: show_documentation crashing when documentation is nil (#1552) (6fe420a)
  • ignore prefetch context for cursor moved updates (a8c5684), closes #1563 #1569
  • maintain menu when cursor moves onto trigger character (61178aa), closes #1559
  • menu position for multibyte characters (#1573) (bd086ef)
  • refresh the menu on char after auto insertion (6f3baea), closes #1568
  • snippet: correctly expand luasnip hidden snippet (#1521) (c02a45b), closes #f0f68 #1503 #1515
  • snippet: keep luasnip item in completion list on exact match (#1554) (623ed75), closes #1553
  • trigger: adjust query bounds logic to handle 0-indexed cursor (#1559) (b83ffad), closes #1500
  • use max of label, insert_text and filter_text guessed edit ranges (7d5ddba), closes #1340
  • use regular trigger characters for keeping menu open (6172f8f)
  • window: correctly extract CursorLine winhiglight (#1536) (e28d61e), closes #1513

1.0.0 (2025-03-25)

10 months, 133 contributors and 1214 commits later... blink.cmp is stable! Special thanks to:

  • @stefanboca for writing blink.compat and extensive work on frizbee
  • @soifou for maintaining the repo and carrying the luasnip source
  • @scottmckendry who
  • @mikavilpas + @xzbdmw for implementing dot-repeat support
  • And many more!

Features

  • reduce snippet score offset from -6 to -4 (62317cb)

Bug Fixes

  • disable completions when vim.b.completion is false (79545c3)
  • disable in dap-repl if user disabled (0153b5b), closes #1495
  • frecency db not updating (ccdef85)

0.14.2 (2025-03-24)

Features

  • completions in dap-repl by default, document enabled behavior (51d3ad4), closes #1492
  • keymap: allow to override inherit preset with user keymaps (#1483) (2477442), closes #1479

Bug Fixes

  • add bracket exception for except statements in python (2a5a6da), closes #1188
  • cmdline: separetely caculate start_pos for :=xx (#1488) (873512b)
  • fuzzy: truncate length of filter_text to 512 (#1475) (cb15a0f)
  • use only first line for preview (e843b91), closes #1477

Performance Improvements

0.14.1 (2025-03-20)

Features

  • allow overriding default enable conditions (32ac556)
  • draw cursor line background above other highlights (a026b8d), closes #1254 #1371
  • support vim.o.winborder (768e6cc), closes #1462
  • use fixed nightly rust version for release only (6f9d669)

Bug Fixes

  • padded border type passed to nvim_open_win (13ce441)
  • cursor line hl name from existing cursor line hl (f86f162)
  • download: handle first-time loading issue of rust lua module (#1472) (40a9786), closes #38a234e9 #1471
  • luasnip: use cursor to locate clear_region.to (#1459) (0a56a23)
  • pcall getting vim.o.winborder (c1407e0)
  • scrollbar: explicitly set border to 'none' (#1461) (1825d4d)
  • semantic token auto brackets running when disabled, and vice versa (5b1d349), closes #1465

0.14.0 (2025-03-18)

Highlights

  • The enabled option now includes vim.bo.buftype ~= 'prompt' and vim.b.completion ~= false and mode checks internally
    • When replacing this option, you no longer need to include those checks
  • sources.providers[id].name is no longer required, and defaults to the id capitalized
    • For example, id = buffer will default to name = Buffer)

BREAKING CHANGES

  • use default sources when dynamically adding filetype sources
  • apply default and mode specific rules to enabled by default
  • require sources to explicitly use default accept implementation
  • allow creating generic sources for complete-functions (#1351)

Features

  • add 'inherit' keymap preset for modes (e58c130), closes #1327
  • add insert_prev/next commands and is_active API (0a7f700), closes #1367
  • add nu to blocked auto bracket filetypes (ef9d861), closes #1383
  • allow creating generic sources for complete-functions (#1351) (02136c1)
  • apply default and mode specific rules to enabled by default (23c2afa)
  • default source.providers[id].name to source id capitalized (6ded22a), closes #1353
  • don't trigger when CursorMoved onto trigger character (be15af8)
  • enable cmdline in cmdline mode only (6a98990), closes #1405
  • force update_delay_ms to >= 50 (cf0c7e3), closes #1352
  • handle large buf text completion with pure lua (#1394) (8e744eb)
  • ignore htmx-lsp client (hack) (d5aa7f4), closes #825
  • keymap: toggle signature help window in snippet (#1411) (86d7cd6)
  • only check cmdline cursor position when in cmdline mode (8a17009), closes #1355
  • require sources to explicitly use default accept implementation (c5ca0f2)
  • snippet: add opt-in prefer_doc_trig for luasnip regex trigger (#1426) (d3607d2), closes #1373
  • support triggerParameterHints and triggerSuggest LSP client commands (4ed2fa7), closes #1333
  • use builtin neovim semantic token api (#1186) (bf810eb), closes #187
  • use default sources when dynamically adding filetype sources (183dd14), closes #1217

Bug Fixes

  • buffer source using rust matcher during async (bf8ee3a), closes #1346
  • bypass prebuilt binary download on nix (6c83ef1), closes #1334
  • check if frizzbee shared library exists (#1417) (bfa1aea), closes #1410
  • cmdline: correctly handle bulk deletions in nvim < 0.11 (#1427) (3900772), closes #1369
  • cmdline: handle boolean options and improve file completion (#1399) (43687e3), closes #1366
  • disable binary checks when version file missing (bcae807), closes #1376 #1364
  • downloader never downloading if version and library missing (38a234e)
  • drop client_name from LSP item when resolving (e66e50e), closes #1347
  • ensure noice never required in cmdline (9645614), closes #1406 #1396
  • ghost-text: check buffer valid before deleting extmark (273bb36), closes #1378
  • handle blob-type in documentation height computation (#1384) (becb5d4), closes #1320
  • improve luasnip integration and expand functionality (#1375) (f0f68a1)
  • incorrect initial trigger character (6eea1bb)
  • list selection cycling with preselect = false (62c0532)
  • lsp client command names (36a8b30)
  • lsp: missing source parameter (#1451) (5e2c28b)
  • luasnip: hide completion window when expanding autosnippets (#1450) (cf83e5d), closes #1018
  • luasnip: use enter instead of leave luasnip event (#1455) (cb5142e)
  • mini snippets source not clearing keyword (970dae0)
  • never show signature help if disabled (f29498e), closes #1062
  • nix: don't add trailing newline to version (#1356) (c90bd67)
  • off by one error in within_query_bounds (60a571e)
  • prefer luasnip name over regex trigger in completion results (#1382) (662a67c), closes #1373
  • preserve 'buflisted' state when applying LSP text edits (#1432) (16fece7)
  • return 0 offset when in cmdline without noice (b737295), closes #1406
  • schedule semantic process request from LspTokenUpdate (0075a2d)
  • text edit range on windows paths (86bf6fd), closes #1385

0.13.1 (2025-02-27)

BREAKING CHANGES

  • add <Left>, <Right> and <C-space> to cmdline preset
  • fallback to next keymap when menu not shown for select_next/prev

Features

  • add <Left>, <Right> and <C-space> to cmdline preset (8f7c23d), closes #1328
  • fallback to next keymap when menu not shown for select_next/prev (ffebcd2), closes #1336

Bug Fixes

  • download: correctly handle download = false and implementation = "rust" (#1334) (2c8e4c7)
  • lua fuzzy implementation off by 1 and suffix matching (2c1524f), closes #1335
  • mini snippets validation (c412578), closes #1332 #1342

0.13.0 (2025-02-26)

Highlights

  • Optional pure Lua mode! (no Rust dependency)
    • By default, if the Rust implementation is not available, Blink will emit a warning and fallback to the Lua implementation
    • See the documentation
  • Cmdline configuration matches built-in cmdline behavior by default
  • Prebuilt binaries should now work on systems as old as Ubuntu 14.04
  • Slow completions with multiple LSPs (especially tailwind and emmet) has been resolved
  • Sources may now define kind_icon, kind_hl and kind_name
  • Guide on writing your own sources

BREAKING CHANGES

  • disable auto-brackets for rust
  • fallback to mappings only for <C-n> and <C-p> by default
  • match built-in cmdline behavior by default (#1314)
  • set BlinkCmpSource highlight to PmenuExtra (#1284)
  • disable accidentally enabled exact sorter
  • set BlinkCmpLabel(Deprecated|Description|Detail) to PmenuExtra
  • revert cmdline draw config to default

Features

  • kind_icon and kind_name on completion items (010d939), closes #984
  • add get_selected_item_idx and get_items API (dc267e0), closes #242
  • add show_with_menu and show_without_menu to ghost text config (132e362), closes #1256
  • apply emmet-ls hack to emmet-language-server (6abb8ab)
  • cache dot repeat buffer (fb6a268)
  • disable accidentally enabled exact sorter (c3a87dd)
  • disable auto-brackets for rust (54fd294), closes #359
  • download implementation with lua matcher (2868fbd)
  • fallback to mappings only for <C-n> and <C-p> by default (1953baa), closes #1286
  • ignore A-z trigger characters (a283be6)
  • isolate tailwind hack, support changing icon (7eee42b), closes #1011
  • lua fuzzy matching implementation (87c88de)
  • match built-in cmdline behavior by default (#1314) (54091b6)
  • multi LSP isIncomplete caching (ceb9f91), closes #1115 #921
  • nix: remove unneeded fetchGit (#1315) (82d0720)
  • re-enable neovim 0.11 vim.validate (22e6351), closes #1275
  • revert cmdline draw config to default (a472b3e), closes #1243
  • set BlinkCmpLabel(Deprecated|Description|Detail) to PmenuExtra (3a97722)
  • set BlinkCmpSource highlight to PmenuExtra (#1284) (6894225)
  • set glibc to 2.21 for linux builds (f1877a0), closes #160
  • show loading indicator on long running fetch (3d38eb4), closes #81
  • support ghost text with noice (#1269) (9cbbcc0)
  • use source_id when tracking item across lists (78ef9e1)
  • use published frizbee crate (2dbc1b7), closes #839
  • use zig for glibc 2.27 builds (323e480), closes #160

Bug Fixes

  • add missing source_id component to completion menu draw (558c2a4), closes #1321
  • cached LSP items wrong cursor column (3b768bb), closes #1281
  • cmdline arg_number on border with another argument (79aa4e5), closes #1288
  • completions not showing on manual trigger immediately after prefetch (5a6f8d8)
  • context/items not pass to completion.menu.auto_show (#1290) (2f208a7)
  • cross zig configuration (1004e71)
  • docs creating tags breaking panvimdoc (af2f4ec), closes #1278
  • ignore empty completion type in input mode (d2551d6), closes #1309
  • ignore failing cc -dumpmachine (a4bb082), closes #1297 #1299
  • incsearch flickering when typing characters during search (#1305) (d2fbc41), closes #1061
  • insert text edit after additional text edits (6ada545), closes #1270
  • lua expr cmdline completion clears prior input (#1282) (30d9081), closes #1240
  • pcall dot repeat for q: window (3c0115c), closes #1260
  • pick documentation direction via desired min width only (2fb514b), closes #1181
  • pick menu direction based on max height (9446f50)
  • remove accidental backslash in keyword regex (5b7915b), closes #1125
  • respect vim.fn.input completion type (12d035e), closes #1079
  • skip snippet and fallback commands in term/cmdline keymaps (df46f6f), closes #1253
  • trigger custom client LSP commands (#1255) (69fe0ed)

0.12.4 (2025-02-16)

Bug Fixes

0.12.3 (2025-02-16)

Bug Fixes

  • move cursor for auto brackets in dot repeat (5007e54), closes #1233

0.12.2 (2025-02-15)

Bug Fixes

  • use gnu when alpine-release does not exist (1952303)

0.12.1 (2025-02-15)

Bug Fixes

  • always create event listeners for cmdline/term (8a2356a)
  • check cmdline/term.enabled before listening to events (d24d446)
  • check if mode-specific configs are enabled before adding sources (#1231) (19f60a6)

0.12.0 (2025-02-15)

Highlights

  • Dot repeat (.) has been added! Special thanks to @mikavilpas and @xzbdmw
  • Terminal completion (term) has been added but there's no sources taking advantage of it at the moment. Contributions welcome! Thanks @wurli!
  • Mode specific configuration (cmdline and term) have been moved to their own top-level tables. The most notable moves are:
    • keymap.cmdline -> cmdline.keymap
    • sources.cmdline -> cmdline.sources
  • During scoring, items with exact matches receive a bonus of 4, however if you always want exact matches at the top, you may use the new exact sorter: fuzzy.sorts = { 'exact', 'score', 'sort_text' }
  • LSP commands are now supported
  • Vim documentation has been added via panvimdoc, see limitations

BREAKING CHANGES

  • mode-specific config (#1203)
  • explicit snippets.score_offset option
  • add exact match comparator (#1099)
  • default BlinkCmpKind hl to PmenuKind

Features

  • add accept_and_enter and select_accept_and_enter command (#957) (507d0d7)
  • add exact match comparator (#1099) (d6169f0), closes #1085
  • add omnifunc completion source (9c1286f)
  • add asynchronous cc -dumpmachine for libc detection (4ac2c27)
  • add client_name to completion item from lsp (6d1d503), closes #1162
  • add hints for mode-specific config (035e1ba)
  • add lsp command cancellation (62d6ffe)
  • add workflow for vimdocs via panvimdoc (a290e35)
  • apply lsp commands (#1130) (2de57ce)
  • automatic runtime linux libc detection (#1144) (beffa19), closes #160
  • bump deps and frizbee with bitmask prefiltering (b078c6e), closes #1105
  • default BlinkCmpKind hl to PmenuKind (7ae6d9d)
  • disable path source when current path segment contains space (0abe117), closes #1126
  • efficient LSP item concatenation (f8fd448)
  • explicit snippets.score_offset option (cf57b2a)
  • format lua files using stylua (#1179) (567980d)
  • ignore range in cmdline completions (f0aeac2), closes #1155 #1092
  • include _ at beginning of buffer words (846a044), closes #1091
  • mark command and data as resolvable (ebb2e22)
  • mode-specific config (#1203) (93215d8)
  • omni: infer completion kind where possible (ce35af0)
  • omni: use complete-functions info as documentation when available (59c3e21)
  • only load providers enabled for context (aaad7db), closes #1070
  • simplify dot repeat hack (9e95af4), closes #1206
  • support custom draw function for documentation (b88ba59), closes #1113
  • support dot-repeat via vim.fn.complete (#1033) (4673d79)
  • support multi-line dot repeat (a776a09)
  • terminal-mode completions (#665) (7b4e546)

Bug Fixes

  • add elm to blocked filetypes for auto brackets (844b97a), closes #1226
  • avoid exiting completion mode when expanding snippets (0bd150a)
  • buffer: add back missing brackets in regex (9f32ef5), closes #964
  • cancellation not bubbling to sources (b2485c7), closes #1116 #1115
  • close completion window only if open (779afa4), closes #1206
  • cmdline incorrect edit range (d832ace), closes #1117 #1161
  • don't show signature help when trigger is disabled (#1180) (3b770b0)
  • dot repeat no autocmds in win, buf opts, close compl window in insert mode (6431adb)
  • dot repeat sending to background (1e7c433), closes #1206
  • ensure TextChangedI runs last with mini.snippets (#1035) (7f3d982)
  • execute requiring cancellation function (d683d8f)
  • luadoc: KeymapCommand alias broken (#1153) (03db0dd)
  • luasnip duplicate items (f0f34c3), closes #1081
  • move cursor correctly with multi-line text edits (ac2ecd6), closes #1123
  • outdated Cargo.lock (cdd52ac), closes #1150
  • pass resolved item to execute (f22ca35), closes #1219
  • path completion in Windows using backward slash (#1152) (575784f)
  • revert scheduling feedkeys to close completion menu (2b7fbe9)
  • schedule closing completion menu after dot repeat (a17a4be)
  • schedule just feedkeys to close completion menu (363f351)
  • support additional text edits when calculating cursor position (cc34be8), closes #223 #975
  • use nearest char index for keyword range (e3330cd), closes #1131
  • use temporary floating window for dot repeat (754a684)

0.11.0 (2025-01-24)

Important

Blink.cmp now fetches the completion items immediately upon entering insert mode by default. More ideas for prefetching are being explored! #706

The fuzzy matcher now explicitly understands typos which should result in more predictable fuzziness on longer strings

BREAKING CHANGES

  • set prefetch on insert to true by default
  • keymap: add Up/Down keymaps to default preset (#1031)

Features

  • show_and_select keymap command (373535e), closes #1004
  • add add_filetype_source API (40d0ce0)
  • add BlinkCmp status command (#809) (86c9676)
  • add is_(menu|documentation|ghost_text)_visible functions (8d29e0e), closes #995
  • auto bracket exceptions (e121ec2), closes #1008
  • fill in snippet detail if missing in LSP resolve (8f27db5), closes #976
  • ghost_text: show_on_unselected (#965) (4a380c1)
  • keymap: add Up/Down keymaps to default preset (#1031) (44a67b3)
  • menu.draw.columns can be function (#1049) (18b4f1a)
  • rename show_and_select to show_and_insert (595a6a1)
  • resolve cache by context (4759c4b)
  • resolve timeout (f91558e), closes #627
  • set prefetch on insert to true by default (c4eafc1)
  • signature commands and more events (6da1023), closes #816 #89
  • signature: add window.show_documentation option (#954) (59982a5), closes #879
  • spellchecking with typos-cli (#990) (64cb887)
  • support should_show_items from sources (fc9276d), closes #972
  • support proxy for downloading prebuilt binaries (#1030) (6c296e7)
  • use health check for status command (fe9b851)
  • use lossy string for lua -> rust conversion (3b4fa80), closes #1000 #1051

Bug Fixes

  • add exclusion for custom,v:lua completions (#1024) (cee556e)
  • add signature commands to types (c9b52a7)
  • apply detail extraction to lua_ls only (6c87840), closes #896
  • auto_insert undo out of date after cursor movement (d0cb8e8), closes #810
  • call completion handler directly in input mode only (b19436e), closes #1052
  • ci: don't persist credentials in actions/checkout (#991) (1ddd01b)
  • cmdline: make completion work for and s: viml function (#925) (fd8859e)
  • cmdline: parse for command name if possible (#993) (29c9cf3)
  • don't highlight deprecated items with treesitter (c32eca4), closes #1019
  • fuzzy: typo introduced in commit 93541e4 (#1027) (55eeffa)
  • get original cursor before applying text edit in preview (cc490bf), closes #1013
  • ghost_text: ensure multiline indent is correct (#934) (b8dbec6)
  • help detection triggering on first arg (0632884), closes #1050
  • ignore invalid utf-8 vim.v.char (3f9b798), closes #989 #1000
  • ignore prefix for non :lua commands (9854978), closes #1075
  • lsp: early return on completionItem/resolve (#1055) (80dab4d), closes #1048
  • make windows focusable (a5402a1), closes #1001
  • memory leak in cached resolve tasks (ef9f85c), closes #1039
  • mini.snippets: expand function should have body=snippet (#951) (a993bd8)
  • only override if signature is enabled (ce0629f)
  • prefix slicing using chars instead of bytes (93541e4), closes #936
  • schedule cmdline item building (f74f249), closes #1038
  • scrollbar gutter detection with border table (ecbac4b), closes #828
  • separate insert/replace ranges for cmdline (a38c6d8), closes #994
  • shallow copy luasnip items (712af9f), closes #1006
  • stringify parsed snippet when ignoring snippet format (80945db), closes #944

0.10.0 (2025-01-08)

BREAKING CHANGES

  • mini.snippets and snippets presets (#877)
  • support preselect with auto_insert, set as default

Features

  • add get_selected_item public function (9e1e7e6)
  • mini.snippets and snippets presets (#877) (854ab87)
  • set default capabilities on 0.11 (#897) (af1febb)
  • support preselect with auto_insert, set as default (8126d0e), closes #668

Bug Fixes

  • get_char_at_cursor attempting to get char on empty line (7d6bf9a), closes #926
  • within_query_bounds including 1 position after bounds (36ba8eb), closes #890 #875
  • assert vim.lsp.config fn exists before calling (#927) (47efef8)
  • buildVimPlugin (#933) (3f5dcbc)
  • clear context on ignored cursor moved when not on keyword (0f8de3a), closes #937
  • ignore cursor moved when cursor equal before vs after (17eea33)
  • signature: use char_under_cursor in on_char_added handler (#935) (275d407), closes #909

0.9.3 (2025-01-06)

Features

  • add plaintex, tex and context brackets (9ffdb7b)
  • path: replace / in front of cursor on directory (d2b411c)

Bug Fixes

  • add .repro to gitignore (0d1e3c3)
  • cmdline completion new text not including prefix (bc480aa), closes #883
  • ignore buffer local treesitter option (d704244), closes #913
  • ignore non-key char in cmdline completion (cc0e632), closes #893
  • nix: use native gcc on macos (3ab6832), closes #652
  • nix: use nix gcc and provide libiconv (#916) (5d2d601)

0.9.2 (2025-01-03)

Bug Fixes

  • unicode range when checking if char is keyword (100d3c8), closes #878

0.9.1 (2025-01-03)

Features

  • ignore global min_keyword_length for manual trigger (56f5d31), closes #643
  • nix: add formatter (#867) (a0274b1), closes #736
  • normalize search paths (8a64275), closes #835
  • smarter edit/fuzzy range guessing (768bcc0), closes #46
  • sort cmdline items starting with special characters last (ae3bf0d), closes #818
  • support custom/customlist cmdline completions directly (7e7deaa), closes #849

Bug Fixes

  • column alignment off by 1 when bounds length == 0 (0d162bd)
  • get full unicode char at cursor position (e831cab), closes #864
  • hyphen not being considered a keyword (8ca8ca4), closes #866
  • ignore non custom/customlist completion types (f7857fc), closes #849
  • keyword range not being respected for fuzzy matching (4cc4e37)
  • path provider not respecting trailing_slash=false (#862) (0ff2ed5)
  • set undolevels to force undo point (4c63b4e), closes #852
  • use tmp file for downloading to prevent crash on mac on update (84e065b), closes #68
  • window direction sorting on Windows (#846) (00ad008)

Performance Improvements

0.9.0 (2024-12-31)

BREAKING CHANGES

  • rename BlinkCmpCompletionMenu* autocmds to BlinkCmpMenu*
  • set default documentation max_width to 80
  • rename align_to_component to align_to, add cursor option

Features

  • add back support for showing when moving onto trigger character (cf9cc6e), closes #780 #745
  • add callback option to cmp.show (33b82e5), closes #806
  • add callback to hide/cancel, rework show callback (73a5f4e), closes #806
  • add type annotation for keymap function params (#829) (3d7e773)
  • escape filenames in cmdline (e53db6a), closes #751
  • nix: use Cargo.lock instead of hash (#773) (d9513ee)
  • nix: use filesets (#772) (e524347)
  • rename align_to_component to align_to, add cursor option (9387c75), closes #344
  • rename BlinkCmpCompletionMenu* autocmds to BlinkCmpMenu* (fa4312c)
  • run callback for cmp.show, even if menu is open (a1476d3)
  • set default documentation max_width to 80 (1a61625)
  • support @ mode for cmdline (4c2744d), closes #696
  • support configuring clipboard register for snippets (8f51a4e), closes #800
  • support unsafe no lock for fuzzy matcher (6f8da35), closes #817
  • support windows drives for path source (98fded2), closes #612
  • use filter text on non-prefixed test in cmdline (8c194b6)

Bug Fixes

  • accept/brackets: respect item.kind when moving cursor (#779) (c54dfbf)
  • add missing regex file for path source (1118d07), closes #834
  • alignment double offset on align_to (24d6868)
  • apply non-snippet detection to non-snippet kinds (434ea2b), closes #790
  • avoid namespace collision with vim.api.keyset.keymap (63718e9), closes #767
  • check enabled before showing trigger and on mapping (e670720), closes #716
  • clamp text edit end character to start character, if lines equal (6891bcb), closes #634
  • create target/release dir, if it doesn't exist (4020c23), closes #819
  • documentation losing syntax highlighting on doc reopen (#768) (ef59763), closes #703
  • don't prevent show() when ghost-text is visible (#796) (59d6b4f)
  • filter help tags by arg prefix (21da714), closes #818
  • flatten leaving empty tables (#799) (021216d)
  • getcmdcompltype returning empty string (eb9e651), closes #696
  • remove redundant is enabled check (f4add54)
  • return incomplete on err/nil from lsp (1ef9bb9), closes #719
  • set default details to empty array (0350fee)
  • trigger context initial_kind resetting (3ef27bc), closes #803
  • use correct regex for filenames (8df826f), closes #761
  • use existing arg prefix for help filtering in cmdline (c593e83)
  • wait for all LSPs to respond before showing (86a13ae), closes #691

0.8.2 (2024-12-23)

Features

  • improve auto_show flexibility (#697) (a937edd)
  • improve error messages for pre built binaries (c36b60c)
  • sort cmdline completions case insensitive (b68e924), closes #715
  • support dynamic selection mode (c1017f0)

Bug Fixes

  • add git to nix build dependencies and shell (ed1d4f5)
  • add java to blocked filetypes for semantic token auto_brackets (#729) (140ed36)
  • add missing git.lua for downloader (f7bef25)
  • auto_show function logic (#707) (4ef6d1e), closes #697
  • check version sha of locally built, better detection (3ffd31d), closes #68
  • doc scrollbar render (#724) (8f71ccb)
  • inherit package.cpath in worker thread (#726) (b6c7762), closes #725
  • notifications: add title to notifications (#722) (f93af0f)
  • prebuilt binary error message always firing (cab0e8e)

0.8.1 (2024-12-21)

Features

  • path: sort directories first, then by name lowercase (400de65)

Bug Fixes

  • checkhealth after checksum changes (d8ffbe9), closes #669
  • duplicate cursor moved event firing (e360828)
  • get global mapping for fallback in cmdline mode (92da013), closes #674
  • internal types for config not using strict config (bdece4e)
  • path: no items when file fails stat (4218120), closes #688
  • type signature for enabled indicating ctx could be passed (3cb7208), closes #695
  • use context.get_line() when getting preview undo text edit (0f92fb8), closes #702
  • wrong key upstreamed by cmdline_events (4757317), closes #700

0.8.0 (2024-12-20)

Important

sources.completion.enabled_providers has been moved to sources.default

Highlights

  • Cmdline completions! (#323)
  • Sorting now respects LSP hints more directly and doesn't sort alphabetically or by kind by default
  • Sources v2 (#465), adds support for async sources, timeouts, smarter fallbacks, adding sources at runtime and more!

Features

  • extra_curl_args option for prebuilt binaries download (4c2e9e7), closes #481
  • add [ to show_on_x_blocked_trigger_characters (#632) (046a2af)
  • add { to show_on_x_blocked_trigger_characters (712bd30), closes #597
  • add global transform_items and min_keyword_length (e07cb27), closes #502 #504
  • allow providers customize documentation rendering (#650) (bc94c75)
  • cmdline completions (#323) (414d615)
  • cmdline: allow configuring separate cmdline preset (#532) (13b3e57)
  • config: add partial types for each config option (#549) (c3bba64), closes #427
  • config: allow plugins to disable blink for some buffers (#556) (c8e86a3)
  • demote snippets from LSP explicitly (b7c84ac)
  • disable keymaps when no cmdline sources are defined (88ec601)
  • enable auto-brackets by default (4d099ee)
  • enable treesiter highlight in menu per source (#526) (f99b03c), closes #438
  • ensure nvim 0.10+ on startup (30a4a52)
  • expose cmp.is_visible() api (2c826d9), closes #535
  • filter out LSP text items by default (814392a)
  • honor extended luasnip filetypes and cache each (#625) (c3ef922)
  • ignore when source defining trigger character returns no items (684950d), closes #597
  • include ghost text in is_visible (1006662)
  • increase max length of buffer entry to 512 characters (4ab0860), closes #478
  • merge resolved item with item (7a83acf), closes #553
  • reset whole luasnip cache on snippets added (bff6c0f)
  • resolve help tags ourselves in cmdline (02051bf), closes #631
  • rework cmdline source (8f718cc)
  • rework download logic with checksums (#629) (53d22cb)
  • set cursor position for additional text edits (f0ab5e5), closes #223
  • set path to fallback to buffer by default (c9594d5)
  • sort on score and sort_text only by default, disable frecency and proximity on no keyword (76230d5), closes #570
  • sources v2 (#465) (533608f), closes #386 #219 #328 #331 #312 #454 #444 #372 #475
  • support callback on cmp.accept() (be3e9cf)
  • support configuring prefetch_on_insert, disable by default (9d4286f)
  • trigger: prefetch on InsertEnter (#507) (7e98665)
  • use block icon for tailwind items (#544) (1502c75)
  • use number[] for ui_cmdline_pos (80a5198)
  • validate config doesn't have erroneous fields (834163e), closes #501
  • window: add filetype configuration (#499) (eb6213b)

Bug Fixes

  • accept: schecule fuzzy.access using uv.new_work (#522) (f66f19c)
  • account for cmdheight in cmdline_position (thanks @lnrds!) (6b67d16), closes #538
  • add '=' to cmdline trigger characters (fb03ca7), closes #541
  • add back, skip undo point for snippet kinds (1563079)
  • add gcc to flake.nix (380bccf), closes #581
  • add icon gap on ellipsis, remove references to renderer (793b6ac)
  • add mode to context type (f1afb8c)
  • allow 'none' preset for keymaps in validation (bf1fd6a)
  • always get latest keyword (13853d5), closes #539
  • check raw key for space in cmdline_events (7be970e)
  • check that scrollbar is not nil (790369b), closes #525
  • clear LuaSnip cache on snippet updates (#664) (b1b58e7)
  • cmdline event suppression and scrollbar rendering (e3b3fde), closes #523
  • cmdline events firing cursor moved when changed (97989c8), closes #520
  • cmdline including current arg prefix (49bff2b), closes #609
  • cmdline: not delete buf when hide scrollbar cause it seems not necessary (#591) (0046d0c)
  • completion auto_insert replace incorrect range (#621) (5926869), closes #460
  • completion: disable in prompt buffers (#574) (1097d4e)
  • consider functions as snippet commands (d065c87)
  • disable ghost text in command mode (ad17735), closes #524
  • don't block trigger characters in command mode (0a729ae), closes #541
  • don't create undo point when kind equals snippet (343e89d)
  • don't duplicate . when completing hidden files in path source (#557) (714e2b5)
  • don't show when moving on trigger character, hide on no items after trigger (7a04612), closes #545
  • duplicate snippets in luasnip when autosnippets are enabled (12ffc10)
  • fire cursor moved when jumping between tab stops in a snippet (1e4808e), closes #545
  • fuzzy: initialize db only once (7868d47)
  • ghost_text: correctly disable on cmdline (54d1a98)
  • ignore snippets that only contain text (284dd37), closes #624
  • ignore sort_text if either are nil (3ba583c), closes #595
  • include space for cmdline events (38b9c4f)
  • incorrect bounds when removing word under cursor in buffer sources (d682165), closes #560
  • keymap: incorrect merging strategy (f88bd66), closes #599
  • keymap: normalize mapping capitalization (#599) (596a7ab)
  • luasnip: add global_snippets with ft="all" (#546) (9f1fb75)
  • on_key for cmdline events (89479f3), closes #534
  • prefetch first item when selection == 'manual' | 'auto_insert' (a8222cf), closes #627
  • provider: add missing validations (#516) (1eda2b9)
  • provider: restore path completion source (#506) (b2d13ba), closes #465
  • re-enable scrollbar on menu (d48bb17), closes #519
  • remove vim.notify on snippet only containing text (59ef8a4)
  • respect opts.index when checking if cmp.accept can be run (ea12c51), closes #633
  • revert enabled logic or (cfd1b7f), closes #574 #577
  • run callback when LSP client returns nil (f9b72e3), closes #543
  • schedule get_bufnrs for buffer source (342c5ed)
  • signature help window documentation rendering (264aea4)
  • sort by sortText/label again (30705ab), closes #444
  • sources: set default item kind to Property (#505) (08ff824)
  • tailwind: color rendering (#601) (02528e8)
  • uncomment event emitter autocmd (e1cf25f)
  • use luasnip get_snippet_filetypes, remove global_snippets option (c0b5ae9), closes #603
  • use transform_items on resolve (85176f7), closes #614

0.7.5 (2024-12-10)

Features

  • use enabled function instead of blocked_filetypes (a6636c1), closes #440

Bug Fixes

  • fallback: make fallback work with buffer-local mappings (#483) (8b553f6)

0.7.4 (2024-12-09)

Features

  • support non-latin characters for keyword and buffer source (51d5f59), closes #130 #388

Bug Fixes

  • check response.err instead of response.error (#473) (e720477)
  • completion.trigger.show_in_snippet (#452) (a42afb6), closes #443
  • documentation window auto show once and for all (624676e), closes #430
  • fill in cargoHash (aa70277)
  • highlight: fix invalid highlight for doc separator (#449) (283a6af)
  • luasnip resolve documentation (85f318b), closes #437
  • make buffer events options required (d0b0e16)
  • render: not render two separator for doc window (#451) (fc12fa9)
  • revert luasnip source to use current cursor position (5cfff34)

0.7.3 (2024-12-03)

Bug Fixes

  • revert to original logic for updating menu position (99129b6), closes #436

0.7.2 (2024-12-03)

Important

A native luasnip source has been added, please see the README for the configuration

Features

Bug Fixes

  • avoid removing words for current line on out of focus buffers (2cbb02d), closes #433
  • documentation not updating after manually opened (8c1fdc9), closes #430
  • handle nil line (#429) (38b3ad6)

0.7.1 (2024-12-02)

Bug Fixes

0.7.0 (2024-12-02)

Important

Most of the configuration has been reworked, please see the README for the new schema

  • Includes an enormous refactor in preparation for sources v2, commandline completions, and the v1 release #389
  • Enable experimental Treesitter highlighting on the labels via completion.menu.draw.treesitter = true

BREAKING CHANGES

Features

  • add show_on_keyword and show_on_trigger_character trigger options (69a69dd), closes #402
  • allow completing buffer words with unicode (#392) (e1d3e9d)
  • call execute after accepting, but before applying semantic brackets (073449a)
  • default to empty table for setup (#412) (4559ec5)
  • error on download failure (6054da2)
  • nuke the debt (#389) (1187172), closes #323
  • prebuilt binary retry, disable progress, and docs (bc67391), closes #68
  • render: support source_id and source_name in menu render (#400) (d5f62f9)
  • support accepting and drawing by index (4b1a793), closes #382
  • support get_bufnrs for the buffer source (#411) (4c65dbd)
  • treesitter highlighter (#404) (08a0777)
  • use sort_text over label for sorting (0386120), closes #365

Bug Fixes

  • accept grabbing wrong config (3dcf98d)
  • allow border to be a table (52f6387), closes #398
  • auto_insert scheduling and module reference (1b3cd31)
  • autocmd called in fast event (9428983), closes #396
  • buffer events suppression, auto_insert selection (96ceb56), closes #415
  • convert additional text edits to utf-8 (49981f2), closes #397
  • cycling list skipping one item (07b2ee1)
  • deduplicate mode changes, dont hide on select mode (04ff262), closes #393
  • default snippet active function not returning (59add2d), closes #399
  • don't set window properties when nil (cb815af), closes #407
  • ensure failed curl doesn't update the version (933052b), closes #68
  • ensure menu selection index is within bounds (bb5407d), closes #416
  • filter text always being nil (33f7d8d), closes #365
  • incorrect context start_col 1 char after beginning of line (e88da6a), closes #405
  • invalid configuration and readme after refactor (56f7cb6), closes #394
  • keyword range "full" when covering end of line (160b687), closes #268
  • misc typing issues (b94172c)
  • only affect initial show for show_on_keyword and show_on_trigger_character (ea61b1d), closes #402
  • signature window highlight ns (0b9a128)
  • signature window setup (cab7576)
  • super-tab preset keymap name (f569aeb)
  • user autocmd called in fast event not being wrapped (e9baeea)

Documentation

  • add note about reworked config (180be7b)

0.6.2 (2024-11-26)

Features

  • add cancel command for use with auto_insert (c58b3a8), closes #215
  • remove rust from blocked auto brackets filetypes (8500a62), closes #359

Bug Fixes

  • mark all config properties as optional (e328bde), closes #370
  • path source not handling hidden files correctly (22c5c0d), closes #369
  • use offset encoding of first client (0a2abab), closes #380

0.6.1 (2024-11-24)

Features

0.6.0 (2024-11-24)

BREAKING CHANGES

  • matched character highlighting, draw rework (#245)
  • set default nerd_font_variant to mono

Features

  • add execute function for sources (653b262)
  • add get_filetype option for snippet source (#352) (7c3ad2b), closes #292
  • add scrollbar to autocomplete menu (#259) (4c2a36c)
  • add snippet indicator back to label on render (6f5ae79)
  • allow disabling keymap by passing an empty table (e384594)
  • avoid taking up space when scrollbar is hidden (77f037c)
  • extract word from completion item for auto-insert preview (#341) (285f6f4)
  • matched character highlighting, draw rework (#245) (683c47a)
  • option to disable treesitter highlighting (1c14f8e)
  • position documentation based on desired size, not max size (973f06a)
  • set default nerd_font_variant to mono (d3e1c92)
  • support editRange, use textEditText when editRange is defined (db3d1ad), closes #310
  • temporarily disable markdown combining (24b4d35)
  • use filter_text when available (12b4f11)
  • validate provider names in enabled_providers (e9c9b41)

Bug Fixes

  • add ctx.icon_gap in kind_icon component (ccf02f5)
  • applying preview text_edit (#296) (8372a6b)
  • check if source is in enabled_providers before calling source:enabled (#266) (338d2a6)
  • clear last_char on trigger hide (1ce30c9), closes #228
  • completion label details containing newline characters (#265) (1628800)
  • consider the border when calculating the position of the autocom… (#325) (41178d3)
  • consider the border when calculating the width of the documentat… (#326) (130eb51)
  • convert to utf-8 encoding on text edits (2e37993), closes #188 #200
  • default highlight groups (#317) (69a987b)
  • default to item when assigning defaults, only use known defaults (fb9f374), closes #151
  • documentation misplacement due to screenpos returning 0,0 (cb0baa4)
  • download mechanism works with GIT_DIR and GIT_WORK_TREE set (#275) (8c9930c)
  • drop unnecessary filetype configuration (bec27d9), closes #295
  • drop vim print (c3447cc)
  • get the cursor position relative to the window instead of the sc… (#327) (5479abf)
  • ghost-text: flickering using autocmds (#255) (a94bbaf)
  • handle gap for empty text (#301) (371ad28)
  • handle not being in a git repository, fix error on flakes (#281) (d2a216d)
  • ignore empty doc lines and detail lines (aeaa2e7), closes #247
  • join newlines in label_description (#333) (8ba2069)
  • make ghost-text extmark with pcall (#287) (a2f6cfb)
  • offset encoding conversion on nvim 0.11.0 (#308) (9822c6b), closes #307
  • offset encoding for text edits (c2a56e4)
  • only undo if not snippet (f4dcebf), closes #244
  • override typing and module (f1647f7)
  • padded window (#315) (7a37c64)
  • prevent index out of bounds in get_code_block_range (#271) (e6c735b)
  • remove offset from label detail highlight (5262586)
  • reset documentation scroll on new item (cd3aa32), closes #239
  • scrollbar gutter not updating on window resize (c8cf209)
  • scrollbar: use cursorline to determine thumb position (#267) (28fcf95)
  • signature help now highlights the right parameter (#297) (3fe4c75)
  • snippets: fix nullpointer exception (#355) (3ac471b)
  • tailwind colors (#306) (8e3af0e)
  • types: allow resolving empty response from blink.cmd.Source (#254) (46a5f0b)
  • use pmenu scrollbar highlights (5632376)

0.5.1 (2024-11-03)

BREAKING CHANGES

  • set max_width to 80 for documentation

Features

  • 'enter' keymap (4ec5cea)
  • add label details to all draw functions (f9c58ab), closes #97
  • add winblend option for windows (#237) (ca94ee0)
  • align completion window (#235) (0c13fbd), closes #221
  • allow merging of keymap preset with custom keymap (#233) (6b46164)
  • better extraction of detail from doc (b0815e4)
  • only offset window when using preset draw (75cadbc)
  • rework window positioning (a67adaf), closes #45 #194
  • set max_width to 80 for documentation (dc1de2b)
  • TailwindCSS highlight support (#143) (b2bbef5)

Bug Fixes

  • add "enter" keymap to types (3ca68ef)
  • allow to be lazy loaded on InsertEnter (#243) (9d50661)
  • alpine linux detection (a078c87)
  • check LSP methods before requesting (193423c), closes #220
  • documentation width (9bdd828)
  • documentation: better docs (#234) (a253b35)
  • enable show_in_snippet by default (76d11a6)
  • ensure treesitter does not run on windows (2ac2f43), closes #193
  • lazily call fuzzy access (aeb6195)
  • make all of source provider config optional (055b943)
  • only check enabled fallback sources (#232) (ecb3520)
  • window direction and autocomplete closing on position update (4b3fd8f), closes #240

0.5.0 (2024-10-30)

Important

The keymap configuration has been reworked, please see the README for the new schema

You may now use nvim-cmp sources within blink.cmp using @stefanboca's compatibility layer: https://github.com/Saghen/blink.compat

BREAKING CHANGES

  • rework keymap config

Features

  • enabled function for sources (c104663), closes #208
  • accept error handling, expose autocomplete.select (9cd1236)
  • cache resolve tasks (83a8303)
  • glibc 2.17 and musl prebuilt binaries (c593835), closes #160
  • ignore _*.lua files (f6eccaf)
  • lsp capabilities (e0e08cb)
  • output preview with ghost text, including for snippets (#186) (6d25187)
  • perf: call score_offset func once per source (bd90e00)
  • prefetch resolve on select (52ec2c9)
  • resolve item before accept (3927128)
  • rework keymap config (3fd92f0)
  • show completion window after accept if on trigger character (28e0b5a), closes #198
  • support disabling accept on trigger character, block parenthesis (125d4f1), closes #212
  • switch default keymap to select_and_accept (f0f2672)
  • use treesitter for signature help hl (0271d79)

Bug Fixes

  • add back cursor move after accept, but use current line (ceeeb53)
  • always return item in resolve (6f0fc86), closes #211
  • documentation auto show no longer working (#202) (6290abd)
  • dont move cursor after accepting (cab91c5)
  • fallback show_documentation when window open (bc311b7)
  • handle failed lsp resolve request gracefully (4c40bf2)
  • ignore nil item for resolve prefetching (b7d1233), closes #209
  • invalid insertTextMode capabilities (4de7b7e)
  • prevent treesitter from running on windows (9b9be31)
  • schedule non-expr fallback keymaps (#196) (1a55fd1)
  • sending erroneous fields to LSP on resolve (e82c1b7)
  • set default keymap to use accept (7d265b4)
  • snippet reload function (407f2d5)
  • snippet resolve (5d9fa1c)

0.4.1 (2024-10-24)

Bug Fixes

  • check semantic token type (0b493ff)
  • exclude prefix including one char (70438ac)

0.4.0 (2024-10-24)

Important

The sources configuration has been reworked, please see the README for the new schema

BREAKING CHANGES

  • rework sources config structure and available options
  • rework sources system and configuration

Features

  • add extra space to ... on normal nerd font (9b9647b)
  • add nix build-plugin command, update devShell to not require (32069be)
  • auto_show on autocomplete window (#98) (82e03b1)
  • config: add ignored filetypes option (#108) (b56a2b1)
  • custom documentation highlighting (90d6394), closes #113
  • default to not showing in snippet (49b033a), closes #131
  • expose reload function for sources (ff1f5fa), closes #28
  • expose typo resistance, update frizbee (63b7b22)
  • fuzzy: lazy get lua properties (5cc63f0)
  • ignore empty fallback_for table (9c9e0cc), closes #122
  • ignore some characters at prefix of keyword (569156f), closes #135
  • mark buffer completion items as plain text (0f5f484), closes #148
  • more robust preview for auto_insert mode (6e15864), closes #117
  • notify user on json parsing error for snippets (c5146a5), closes #132
  • place cursor at first tab stop on snippet preview (d3e8701)
  • re-enable typo resistance by default (b35a559)
  • reduce build-plugin command to minimal dependencies, add command to docs (cfaf9fc)
  • remove snippet deduplication (e296d8f), closes #146
  • rework sources config structure and available options (e3a811b), closes #144
  • rework sources system and configuration (7fea65c), closes #144
  • select_and_accept keymap (6394508), closes #118
  • support detail only in doc window (#147) (57abdb8)
  • support LSP item defaults (ffc4282)
  • support LSPs with only full semantic tokens and cleanup (0626cb5)
  • support using suffix for fuzzy matching (815f4df), closes #88
  • switch to mlua (#105) (873680d)
  • use textEditText as fallback for textEdit (abcb2a0)
  • windows: add support for individual border character highlights (#175) (3c1a502)

Bug Fixes

  • add back undo text edit for accept (f62046a)
  • add missing select_and_accept keymap to config (d2140dc)
  • always hide window on accept (7f5a3d9)
  • auto insert breaking on single line text edit (78ac56e), closes #169
  • check if item contains brackets before deferring to semantic token (e5f543d)
  • config: set correct type def for blink.cmp.WindowBorderChar (516190b)
  • don't show completions when trigger context is nil (5b39d83)
  • drop prints (89259f9), closes #179
  • drop prints (67fa41f)
  • frizbee not matching on capital letters (722b41b), closes #162 #173
  • fuzzy get query returning extra characters (b2380a0), closes #170 #172 #176
  • fuzzy panic on too many items (1e6dcbf)
  • handle treesitter get_parser failure (fe68c28), closes #171
  • item defaults not being applied (42f8efb), closes #158
  • missing access function (d11f271)
  • only show autocomplete window on select if auto_show is disabled (fa64556)
  • re-enable memory check for now (6b24f48)
  • remove debug prints (9846c2d)
  • select always triggering when auto_show enabled (db635f2)
  • select_and_accept not working with auto_insert (65eb336), closes #118
  • signature window no longer overlaps cursor (#149) (7d6b50b)
  • single char non-matching keyword (3cb084c), closes #141
  • skip treesitter hl on nil lang (cb9397c)
  • temporary workaround for insertReplaceEdit (c218faf), closes #178
  • typo in signature.win (#125) (69ad25f)
  • use treesitter.language.get_lang when choosing parser (213fd94), closes #133
  • window positioning with folds (819b978), closes #95

0.3.1 (2024-10-14)

Bug Fixes

  • ci: use correct file ext for windows (af68874)

0.3.0 (2024-10-14)

BREAKING CHANGES

  • implement auto-insert option (#65)
  • autocompletion window components alignment (#51)
  • disable auto_show documentation by default, use to toggle

Features

  • add back min_width to autocomplete (9a008c9)
  • add basic event trigger API (#31) (127f518)
  • add detail to documentation window (#33) (588e4d4)
  • add health.lua and basic healthchecks (#101) (a12617d)
  • add minimal render style (#85) (b4bbad1)
  • added a preselect option to the cmp menu (#24) (1749e32)
  • apply keymap on InsertEnter (340370d), closes #37
  • ci: support windows pre-built binaries (#100) (b378d50)
  • disable auto_show documentation by default, use to toggle (84361bd)
  • don't search forward when guessing text edit (a7e1acc), closes #58
  • drop source groups in favor of fallback_for (#83) (1f0c0f3)
  • expose source provider config to sources (deba523)
  • ignore repeated call at cursor position in trigger (4883420)
  • implement auto-insert option (#65) (1df7d33)
  • make fuzzy secondary min_score more lenient (b330b61)
  • stylize markdown in documentation window (05229dd)
  • use faster shallow_copy for context (98575f0)

Bug Fixes

  • accept replacing first char in line (655d2ee), closes #38
  • add union to utils (88f71b1)
  • autocomplete positioning on first char in line (7afb06c)
  • autocompletion window components alignment (#51) (a4f5f8e)
  • binary symlink in flake only working on Linux (#93) (fc5feb8)
  • check if LSP supports resolve provider (957a57a), closes #48
  • close completion if the accepted item matches the current word (2f1b85b), closes #41
  • close completion window on ctrl+c in insert mode (#63) (e695c79)
  • config: make blink lua config fields optional (#18) (9c73b0d)
  • context not clearing on trigger character, path regexes (15cb871), closes #16
  • correctly handle non-blink keymaps with string rhs (#78) (1ad59aa)
  • disable blink.cmp remaps when telescope prompt is open (#104) (7f2f74f), closes #102
  • documentation manual trigger not updating on scroll (cd15078)
  • documentation of snippet cannot be shown when description is list (#92) (f99bf6b)
  • don't initialize first_fill with 1 (#87) (526f786)
  • double send on append on trigger character (ebbce90), closes #25
  • enable kind auto brackets for TS/JS (808f628)
  • expand vars in snippets for insertText (ce337cb), closes #27
  • ffi: handle cargo library naming conventions for windows binaries (#74) (e9493c6)
  • guess text edit once and for all (fc348da)
  • handle empty table in additionalTextEdits (#99) (65e9605)
  • handle newlines in autocomplete suggestions (#110) (c39227a)
  • passthrough bind on show/hide when shown/hidden (a5145ae), closes #49
  • re-enable preselect by default (64673ea)
  • replace keycodes on callback alternate mappings (df5c0de), closes #47
  • respect autocomplete min_width (#86) (c15aefe)
  • signature window failing when trigger context empty (6a21d7c)
  • snippet keymaps not applying in insert (a89ae20), closes #70
  • snippet source markdown generation (a6cf72a)
  • snippets source expanding vars (5ffd608)
  • strip blink fields from lsp items for resolve (ab99b02)
  • union_keys not using pairs (8c2cb2e)
  • update ffi.lua (27903be)
  • use correct prev/next keymap (#53) (f456c2a), closes /github.com/Saghen/blink.cmp/pull/23#issuecomment-2399876619
  • use empty separator for joining snippet description (28f3a31)
  • use internal CompletionItemKind table (4daf96d), closes #17

0.2.1 (2024-10-08)

Features

Bug Fixes

  • autocomplete window positioning with borders (ba62bda), closes #29
  • check server capabilities (#5) (8d2615d)
  • keymaps not replacing keycodes (5dd7d66)
  • keymaps replacing buffer local bindings (506ea74), closes #39
  • use buffer-local keymaps (ecb3510), closes #20
  • use correct prev/next keymap for k and j (#23) (43e7532)

0.2.0 (2024-10-07)

Features

  • blink cmp specific winhighlights and highlights (a034865)
  • check for brackets in front of item (2c6ee0d)
  • custom drawing support (3e55028)
  • customizable undo point (876707f)
  • introduce customizable winhighlight for autocomplete and documentation windows (1a9cb7a)
  • support keyword_length on sources (77080a5)

Bug Fixes

  • autocomplete window placement (4e9d7ca)
  • frecency access scoring (e736972)
  • misc (5f4db7a)
  • path completions (6a5cf05)
  • respect min/max width for autocomplete window rendering (0843884)
  • signature trigger config (cf9e4aa)
  • signature window showing up after context deleted (857b336)
  • window placement with border (d6a81d3)

0.1.0 (2024-10-05)

Features

  • .local/state db location and misc (bf76a01)
  • accept and auto brackets config (fd32689)
  • add back to repo (24422f2)
  • add documentation keymaps (e248579)
  • auto brackets support (7203d51)
  • basic snippet expansion and text edit support (451dd9e)
  • better documentation window positioning (a7ee523)
  • complete rework (1efdc8a)
  • consolidate context table (ad9ba28)
  • drop performance logging (2974bc0)
  • dynamic cmp and doc window width (6b78c89)
  • enable path source by default (e7362c0)
  • hack around LSPs returning filtered items (b58a382)
  • handle no items in source provider (82106a4)
  • immediate fuzzy on keystroke (1d3d54f)
  • implement snippets without deps (37dbee4)
  • init flake (87e0416)
  • initial (1b28288)
  • initial configuration support (b101fc1)
  • keymaps in config (d6bad7b)
  • lock position to context start (6ee55d4)
  • maintain window on immediate new context while deleting (4d1b785)
  • min score on fuzzy results, avoid trimming valid items (14a014d)
  • misc (e8372ab)
  • multi-repo setup based on mini.nvim (15e808b)
  • nerd font variant and misc cleanup (6571c96)
  • nvim cmp as default highlight (b93a5e3)
  • pre-built binary download support, misc refactors (b1004ab)
  • put context via wrapper (f5d4dae)
  • reenable auto_show for documentation (f1f7de4)
  • rework path source (5787816)
  • rework sources again (7568de9)
  • rework sources system (3ee91b5)
  • show on insert on trigger character (a9ff243)
  • signature help and misc (fbfdf29)
  • smarter caching, misc fixes (3f1c8bd)
  • smarter fuzzy, drop logging (6b09eaa)
  • sort _ items last (210f21f)
  • source should_show, windowing config/fixes, misc (3d1c168)
  • update flake to reflect merge with mono-repo (aa80347)
  • use naersk to simplify build, remove unused inputs (5579688)
  • use remote fzrs for build (04d5647)
  • WIP sources rework (ad347a1)

Bug Fixes

  • a lot (8a599ba)
  • accept auto brackets (3927e23)
  • add version to pkg (8983597)
  • avoid immediately showing on context change (632e6ac)
  • avoid setting filetype for preview for now (32ef1b9)
  • buffer response context (4650a35)
  • cancel signature help request on hide (b1fdee5)
  • documentation delays (01d5fd0)
  • keymap and simplify (0924c8a)
  • keymaps (863bad7)
  • lazy.nvim loading (9115fc2)
  • maintain autocomplete pos when scrolling/resizing (a720117)
  • plugin paths (ae4aeae)
  • proximity and frecency bonus (7bb4000)
  • reference correct signature window (30855cd)
  • remove debug prints (013dc02)
  • remove references to removed inputs (d69b4d1)
  • set pname instead of name (addf204)
  • snippets items (d8a593d)
  • sources trigger character blocklist (69d3854)
  • trigger, docs, so much stuff (fae11d1)
  • update package build dir to cmp/fuzzy (13203e3)