annotate dot_config/nvim/init.lua @ 285:d48b05b03ddf

Add treesitter based completion
author zegervdv <zegervdv@me.com>
date Tue, 01 Sep 2020 08:44:03 +0200
parents 6279917e1aaa
children 7168baf3c352
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
280
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 local lsp = require'nvim_lsp'
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
2
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 require "nvim-treesitter.highlight"
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
4 -- local hlmap = vim.treesitter.TSHighlighter.hl_map
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
5
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 require'nvim-treesitter.configs'.setup {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 highlight = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 enable = true,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 incremental_selection = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 enable = true,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 keymaps = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 init_selection = "gnn",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 node_incremental = "grn",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 scope_incremental = "grc",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
16 node_decremental = "grm",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 }
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 refactor = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
20 smart_rename = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 enable = true,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 keymaps = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 smart_rename = "grr",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 navigation = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 enable = true,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
28 keymaps = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 goto_definition = "gnd",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 list_definitions = "gnD",
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
32 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 },
282
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
34 playground = {
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
35 enable = true,
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
36 disable = {},
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
37 updatetime = 25,
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
38 persist_queries = false
6279917e1aaa Switch to vim-one colorscheme
zegervdv <zegervdv@me.com>
parents: 281
diff changeset
39 }
280
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 }
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
41
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 local chain_complete_list = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 default = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 default = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 {complete_items = {'lsp', 'snippet'}},
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 {complete_items = {'path'}, triggered_only = {'/'}},
285
d48b05b03ddf Add treesitter based completion
zegervdv <zegervdv@me.com>
parents: 282
diff changeset
47 {complete_items = {'ts'}},
281
dfd62b5a9962 Add buffer completion source
zegervdv <zegervdv@me.com>
parents: 280
diff changeset
48 {complete_items = {'buffer'}},
280
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 string = {
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 {complete_items = {'path'}, triggered_only = {'/'}},
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 },
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 comment = {},
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 }
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 }
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
56
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 local on_attach = function(client)
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 require'diagnostic'.on_attach({
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 -- enable_virtual_text = 1,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
60 -- virtual_text_prefix = 'F',
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 })
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
62 require'completion'.on_attach({
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
63 sorting = 'alphabet',
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
64 matching_strategy_list = {'exact', 'fuzzy'},
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
65 chain_complete_list = chain_complete_list,
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
66 })
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
67 -- This came from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/lsp_config.lua
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
68 local mapper = function(mode, key, result)
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
69 vim.fn.nvim_buf_set_keymap(0, mode, key, result, {noremap=true, silent=true})
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
70 end
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
71
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
72 mapper('n', 'gd', '<cmd>lua vim.lsp.buf.declaration()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
73 mapper('n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
74 mapper('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
75 mapper('n', 'gD', '<cmd>lua vim.lsp.buf.implementation()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
76 mapper('n', '1gD', '<cmd>lua vim.lsp.buf.type_definition()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
77 mapper('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
78 mapper('n', 'g0', '<cmd>lua vim.lsp.buf.document_symbol()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
79 mapper('i', '<c-l>', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
80 end
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
81
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
82 lsp.pyls.setup{
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
83 cmd = {"pyls"},
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
84 on_attach = on_attach;
dd8b9d0c0e41 Move lua config to lua.init
zegervdv <zegervdv@me.com>
parents:
diff changeset
85 }