Skip to content

Pure lua mode #1316

@saghen

Description

@saghen

Feature Description

For blink.cmp to become the defacto completion plugin, it must run everywhere without any build steps. As is, we support >95% of systems via the prebuilt binaries, but require building when running from main or when running on obscure systems. Thus, we should provide a pure lua mode which provides most of the functionality with reasonable performance.

Related nvim-lua/kickstart.nvim#1331

The following components would need to be re-implemented in lua:

  • Keyword regex matching (notably \p{L} for matching Unicode alphabet, not just ASCII)
    • Should be possible to use vim's \k regex, along with a check to filter out symbols
  • Getting fuzzy matching/replacement range (Completion items not properly matching full 'word' #46)
  • Fuzzy matching
    • Scores should be similar to frizbee but don't need some of the complex bonuses such as delimiter
    • Must support incremental matching
    • No support for typos (Greedy search, no smith waterman)
  • Buffer source (get_words)

Frecency support would be dropped, but we could introduce an in-memory recency instead later

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or requestfuzzyFiltering and sorting of completion items

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions