Mercurial > dotfiles
comparison dot_config/nvim/config.lua @ 319:b93f12d23fbd
Rename init.lua to config.lua
init.lua is now automatically sourced, and runs before init.vim causing
issues like lspconfig that cannot be found.
Renaming to something that will not be sourced automatically and
manually load it from init.vim when all plugins are loaded
author | Zeger Van de Vannet <zegervdv@me.com> |
---|---|
date | Thu, 17 Dec 2020 17:49:14 +0100 |
parents | |
children | aa0a095f8759 |
comparison
equal
deleted
inserted
replaced
318:93b8df942a20 | 319:b93f12d23fbd |
---|---|
1 local lsp = require'lspconfig' | |
2 local lsputil = require'lspconfig.util' | |
3 | |
4 require "nvim-treesitter.highlight" | |
5 | |
6 require'nvim-treesitter.configs'.setup { | |
7 highlight = { | |
8 enable = true, | |
9 }, | |
10 incremental_selection = { | |
11 enable = true, | |
12 keymaps = { | |
13 init_selection = "gnn", | |
14 node_incremental = "grn", | |
15 scope_incremental = "grc", | |
16 node_decremental = "grm", | |
17 } | |
18 }, | |
19 refactor = { | |
20 highlight_definitions = { enable = true }, | |
21 smart_rename = { | |
22 enable = true, | |
23 keymaps = { | |
24 smart_rename = "grr", | |
25 }, | |
26 }, | |
27 navigation = { | |
28 enable = true, | |
29 keymaps = { | |
30 goto_definition = "gnd", | |
31 list_definitions = "gnD", | |
32 }, | |
33 }, | |
34 }, | |
35 textobjects = { | |
36 move = { | |
37 enable = true, | |
38 goto_next_start = { | |
39 ["]]"] = "@block.outer", | |
40 }, | |
41 goto_previous_start = { | |
42 ["[["] = "@block.outer", | |
43 }, | |
44 goto_next_end = { | |
45 ["]["] = "@block.outer", | |
46 }, | |
47 goto_previous_end = { | |
48 ["[]"] = "@block.outer", | |
49 }, | |
50 }, | |
51 }, | |
52 playground = { | |
53 enable = true, | |
54 disable = {}, | |
55 updatetime = 25, | |
56 persist_queries = false | |
57 } | |
58 } | |
59 | |
60 local chain_complete_list = { | |
61 default = { | |
62 default = { | |
63 {complete_items = {'lsp'}}, | |
64 {complete_items = {'lsp', 'snippet', 'ts', 'buffer'}}, | |
65 {complete_items = {'path'}, triggered_only = {'/'}}, | |
66 {complete_items = {'ts'}}, | |
67 }, | |
68 string = { | |
69 {complete_items = {'path'}, triggered_only = {'/'}}, | |
70 }, | |
71 comment = {}, | |
72 } | |
73 } | |
74 | |
75 local on_attach = function(client) | |
76 require'completion'.on_attach({ | |
77 sorting = 'alphabet', | |
78 matching_strategy_list = {'exact', 'fuzzy'}, | |
79 chain_complete_list = chain_complete_list, | |
80 }) | |
81 -- This came from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/lsp_config.lua | |
82 local mapper = function(mode, key, result, noremap) | |
83 if noremap == nil then | |
84 noremap = true | |
85 end | |
86 vim.fn.nvim_buf_set_keymap(0, mode, key, result, {noremap=noremap, silent=true}) | |
87 end | |
88 | |
89 -- vim.api.nvim_command('autocmd CursorHold <buffer> lua vim.lsp.diagnostic.show_line_diagnostics()') | |
90 mapper('n', '<CR>', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>') | |
91 mapper('n', 'gd', '<cmd>lua vim.lsp.buf.declaration()<CR>') | |
92 mapper('n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<CR>') | |
93 mapper('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') | |
94 mapper('n', 'gD', '<cmd>lua vim.lsp.buf.implementation()<CR>') | |
95 mapper('n', '1gD', '<cmd>lua vim.lsp.buf.type_definition()<CR>') | |
96 -- mapper('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>') | |
97 mapper('n', 'gr', "<cmd>lua require'telescope.builtin'.lsp_references()<CR>") | |
98 mapper('n', 'g0', '<cmd>lua vim.lsp.buf.document_symbol()<CR>') | |
99 mapper('i', '<c-l>', '<cmd>lua vim.lsp.buf.signature_help()<CR>') | |
100 mapper('n', '<leader>f', '<cmd>lua vim.lsp.buf.code_action()<CR>') | |
101 mapper('n', '<c-p>', '<cmd>lua vim.lsp.buf.formatting()<CR>') | |
102 mapper("i", "<c-n>", "<Plug>(completion_trigger)", false) | |
103 mapper("i", "<c-j>", "<Plug>(completion_next_source)", false) | |
104 mapper("i", "<c-k>", "<Plug>(completion_prev_source)", false) | |
105 end | |
106 | |
107 | |
108 vim.lsp.handlers["textDocument/formatting"] = function(err, _, result, _, bufnr) | |
109 if err ~= nil or result == nil then | |
110 return | |
111 end | |
112 if not vim.api.nvim_buf_get_option(bufnr, "modified") then | |
113 local view = vim.fn.winsaveview() | |
114 vim.lsp.util.apply_text_edits(result, bufnr) | |
115 -- Fix to reload Treesitter | |
116 -- vim.api.nvim_command("edit") | |
117 vim.fn.winrestview(view) | |
118 end | |
119 end | |
120 | |
121 lsp.pyls.setup{ | |
122 cmd = {"pyls"}, | |
123 on_attach = on_attach; | |
124 } | |
125 | |
126 if (vim.fn.executable('veridian') == 1) then | |
127 lsp.veridian.setup{ | |
128 on_attach = on_attach; | |
129 } | |
130 end | |
131 | |
132 if (vim.fn.executable('efm-langserver') == 1) then | |
133 lsp.efm.setup{ | |
134 on_attach = on_attach; | |
135 root_dir = lsputil.root_pattern('.git', '.hg'); | |
136 } | |
137 end |