Skip to content

Lsp snippets complete #193

Closed
Closed
@basilgood

Description

@basilgood

Contributing guidelines

Module(s)

mini.completion

Description

Hi! I really like this plugin.
It is simple and effective.
It's fast and has everything I need except for one thing:

  • lsp snippets completion.

If cssls or cssmodules_ls is active, the server snippets it delivers expand but do
not stop at the placeholder.

RecApp-2023-01-11-10.20.54.mp4

This is my minimal config:

local install_path = vim.fn.stdpath('data') .. '/site/pack/paqs/start/paq-nvim'
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
  vim.fn.system({'git', 'clone', '--depth=1', 'https://github.com/savq/paq-nvim.git', install_path})
end

require('paq')({
  'savq/paq-nvim',
  'echasnovski/mini.completion',
  'neovim/nvim-lspconfig',
  'williamboman/mason.nvim',
})

-- completion
require('mini.completion').setup({
  lsp_completion = {
    source_func = 'omnifunc',
    auto_setup = false,
  },
})
vim.keymap.set('i', '<Tab>', [[pumvisible() ? "\<C-n>" : "\<Tab>"]], { remap = true, expr = true })
vim.keymap.set('i', '<S-Tab>', [[pumvisible() ? "\<C-p>" : "\<S-Tab>"]], { remap = true, expr = true })

-- lsp
local lspconfig = require('lspconfig')
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.completion.completionItem.snippetSupport = true
local on_attach = function(_, bufnr)
  vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.MiniCompletion.completefunc_lsp')
end

require('mason').setup()

local servers = { 'tsserver', 'cssls', 'cssmodules_ls', 'html' }
for _, lsp in ipairs(servers) do
  lspconfig[lsp].setup({
    on_attach = on_attach,
    capabilities = capabilities,
    init_options = { usePlaceholders = true },
  })
end

Without mini.completion using omnifunc <C-x><C-o>
and this setting: vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
it works.
My request is if you can help me achieve this result with mini completion plugin.
Thank you very much for your beautiful work.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions