首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Neovim设置为使用nvim/nvim-lspconfig自动完成时出现问题

将Neovim设置为使用nvim/nvim-lspconfig自动完成时出现问题
EN

Stack Overflow用户
提问于 2021-10-03 04:47:56
回答 1查看 1.7K关注 0票数 1

我一直在尝试用neovim/nvim-lspconfig为语言设置自动补全功能

这是我到目前为止所拥有的代码:

代码语言:javascript
复制
set cot=menuone,noinsert shm+=c
let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']

nnoremap <leader>vd :lua vim.lsp.buf.definition()<CR>
nnoremap <leader>vi :lua vim.lsp.buf.implementation()<CR>
nnoremap <leader>vsh :lua vim.lsp.buf.signature_help()<CR>
nnoremap <leader>vrr :lua vim.lsp.buf.references()<CR>
nnoremap <leader>vrn :lua vim.lsp.buf.rename()<CR>
nnoremap <leader>vh :lua vim.lsp.buf.hover()<CR>
nnoremap <leader>vca :lua vim.lsp.buf.code_action()<CR>
nnoremap <leader>vsd :lua vim.lsp.util.show_line_diagnostics(); vim.lsp.util.show_line_diagnostics()<CR>
command! -buffer -nargs=0 LspShowLineDiagnostics lua require'jumpLoc'.openLineDiagnostics()
nnoremap <buffer><silent> <C-h> <cmd>LspShowLineDiagnostics<CR>

:lua << EOF
  local nvim_lsp = require('lspconfig')
  local on_attach = function(_, bufnr)
    require('completion').on_attach()
  end
  local servers = {'clangd', 'pyright', 'gopls'}
  for _, lsp in ipairs(servers) do
    nvim_lsp[lsp].setup {
      on_attach = on_attach,
    }
  end
EOF

当我尝试测试它们时,我只能得到警告检查和语法突出显示。我无法让自动完成功能工作。有没有人知道我是否需要启用一个设置或环境变量来启用它?

EN

回答 1

Stack Overflow用户

发布于 2021-10-13 10:09:38

嗯。你的问题是你call on_attach而不是returning it

这就是问题所在

代码语言:javascript
复制
  local on_attach = function(_, bufnr)
    require('completion').on_attach()
  end

将上面的代码更改为

代码语言:javascript
复制
  local on_attach = function(_, bufnr)
    return require('completion').on_attach
  end

还有这里:

代码语言:javascript
复制
    nvim_lsp[lsp].setup {
      on_attach = on_attach,
    }

你正在分析一个on_attach函数,你被禁止调用它,你是pass the function object

completion-nvim文档(https://github.com/nvim-lua/completion-nvim#setup):

代码语言:javascript
复制
lua require'lspconfig'.pyls.setup{on_attach=require'completion'.on_attach}

它们传递函数,而不是调用它。

试一下readme中的这个例子,好吗?告诉我结果

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69422154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档