Skip to content

Conversation

@saghen
Copy link
Owner

@saghen saghen commented Oct 24, 2025

This PR is a long ways from running, let alone being stable. Closes #1059. Rather than merging this in, I'll rename the current main branch to v1 and rename this branch to main.

V2 Overall goals:

  • Remove sources in favor of LSPs
    • Include compat layer for existing blink.cmp sources to in-process LSPs
    • Promote building in-process LSPs across the ecosystem (include boilerplate)
  • Simplify codebase as much as possible
    • Consider removing auto brackets, LSPs should support this themselves
    • Switch keymap system to vim.on_key
    • User calls cmp.download() to download prebuilt-binaries or cmp.build() to build from source. No automatic download
    • Drop custom documentation rendering, in favor of vim.lsp.utils.convert_input_to_markdown_lines (we have conceal lines now!)
  • Adopt vim.task: https://github.com/lewis6991/async.nvim
  • First-class vim help documentation
  • Adopt iskeyword for keyword regex by default
  • Synchronous API when possible

Configuration goals:

  • Programmatic over declarative
  • Follow neovim patterns as much as possible (refer to vim.lsp.*, vim.lsp.inlay_hint.*, etc.)
  • Easily configure per-buffer, per-LSP, and dynamically
  • First-class vim.pack support
  • All on_* event handlers also emit User autocommands

@saghen
Copy link
Owner Author

saghen commented Oct 24, 2025

If anyone is interested in contributing, please open a PR targeting the v2 branch. Read through layout.lua for an idea of the desired API, but feel free to make your own changes, as long as you justify them and they follow the same spirit. Some ideas for what to work on:

  • Convert built-in sources to in-process LSP
    • buffer
    • path
    • cmdline
    • snippets
  • cmp.snippets.registry
  • cmp.keymap
  • All cmp.*.config/enable/is_enabled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Goals for v2

2 participants