diff --git a/after/plugin/airline.vim b/after/plugin/airline.vim index 377d079..2238843 100644 --- a/after/plugin/airline.vim +++ b/after/plugin/airline.vim @@ -6,7 +6,7 @@ let g:airline_right_alt_sep = '' let g:airline_symbols.branch = '' let g:airline_symbols.readonly = '' let g:airline_symbols.linenr = '' -let g:airline_section_z = '' +"let g:airline_section_z = '' function! LspStatus() abort let status = luaeval('require("lsp-status").status()') diff --git a/init.vim b/init.vim index 2b47b25..efe9666 100644 --- a/init.vim +++ b/init.vim @@ -184,4 +184,8 @@ lua require("my-lsp") lua require("lsputils") lua require("conf.cmp") lua require("conf.trouble") +lua require("conf.treesitter") +set foldmethod=expr +set foldexpr=nvim_treesitter#foldexpr() +set nofoldenable " Disable folding at startup. " vi:foldmethod=marker sw=2 diff --git a/lua/conf/cmp.lua b/lua/conf/cmp.lua index fe8b747..44c3e9a 100644 --- a/lua/conf/cmp.lua +++ b/lua/conf/cmp.lua @@ -1,4 +1,5 @@ local cmp = require'cmp' + cmp.setup({ snippet = { expand = function(args) @@ -7,6 +8,8 @@ cmp.setup({ }, mapping = { [''] = cmp.mapping.confirm({ select = true }), + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm({ @@ -21,12 +24,28 @@ cmp.setup({ end end }, - sources = { + sources = cmp.config.sources({ { name = 'nvim_lsp' }, - --{ name = 'buffer' }, { name = 'vsnip' }, + },{ + { name = 'buffer' }, --{ name = 'path' }, + }), +}) + +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } } }) -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) diff --git a/lua/my-lsp.lua b/lua/my-lsp.lua index 74bbf59..171193d 100644 --- a/lua/my-lsp.lua +++ b/lua/my-lsp.lua @@ -3,16 +3,16 @@ local lsp_status = require('lsp-status') lsp_status.register_progress() -- enable snippet support -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true -capabilities.textDocument.completion.completionItem.resolveSupport = { - properties = { - 'documentation', - 'detail', - 'additionalTextEdits', - } -} -capabilities = vim.tbl_extend('keep', capabilities or {}, lsp_status.capabilities) +--local capabilities = vim.lsp.protocol.make_client_capabilities() +--capabilities.textDocument.completion.completionItem.snippetSupport = true +--capabilities.textDocument.completion.completionItem.resolveSupport = { +-- properties = { +-- 'documentation', +-- 'detail', +-- 'additionalTextEdits', +-- } +--} +--capabilities = vim.tbl_extend('keep', capabilities or {}, lsp_status.capabilities) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer @@ -48,24 +48,9 @@ local on_attach = function(client, bufnr) --require'completion'.on_attach(client, bufnr) end -local lsp_installer = require("nvim-lsp-installer") -lsp_installer.on_server_ready(function(server) - local opts = {} +require("lsp.metals")(on_attach) - server:setup(opts) -end) - -metals_config = require("metals").bare_config() -metals_config.init_options.statusBarProvider = "on" -metals_config.settings = { showImplicitArguments = true } -metals_config.on_attach = on_attach -metals_config.capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities) - -vim.cmd [[augroup lsp]] -vim.cmd [[au!]] -vim.cmd([[autocmd FileType scala setlocal omnifunc=v:lua.vim.lsp.omnifunc]]) -vim.cmd [[au FileType scala,sbt lua require("metals").initialize_or_attach(metals_config)]] -vim.cmd [[augroup end]] +require("lsp.typescript")(on_attach) vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( vim.lsp.diagnostic.on_publish_diagnostics, {