280
|
1 local lsp = require'nvim_lsp'
|
|
2
|
|
3 require "nvim-treesitter.highlight"
|
|
4 -- local hlmap = vim.treesitter.TSHighlighter.hl_map
|
|
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 smart_rename = {
|
|
21 enable = true,
|
|
22 keymaps = {
|
|
23 smart_rename = "grr",
|
|
24 },
|
|
25 },
|
|
26 navigation = {
|
|
27 enable = true,
|
|
28 keymaps = {
|
|
29 goto_definition = "gnd",
|
|
30 list_definitions = "gnD",
|
|
31 },
|
|
32 },
|
|
33 },
|
282
|
34 playground = {
|
|
35 enable = true,
|
|
36 disable = {},
|
|
37 updatetime = 25,
|
|
38 persist_queries = false
|
|
39 }
|
280
|
40 }
|
|
41
|
|
42 local chain_complete_list = {
|
|
43 default = {
|
|
44 default = {
|
|
45 {complete_items = {'lsp', 'snippet'}},
|
|
46 {complete_items = {'path'}, triggered_only = {'/'}},
|
281
|
47 {complete_items = {'buffer'}},
|
280
|
48 },
|
|
49 string = {
|
|
50 {complete_items = {'path'}, triggered_only = {'/'}},
|
|
51 },
|
|
52 comment = {},
|
|
53 }
|
|
54 }
|
|
55
|
|
56 local on_attach = function(client)
|
|
57 require'diagnostic'.on_attach({
|
|
58 -- enable_virtual_text = 1,
|
|
59 -- virtual_text_prefix = 'F',
|
|
60 })
|
|
61 require'completion'.on_attach({
|
|
62 sorting = 'alphabet',
|
|
63 matching_strategy_list = {'exact', 'fuzzy'},
|
|
64 chain_complete_list = chain_complete_list,
|
|
65 })
|
|
66 -- This came from https://github.com/tjdevries/config_manager/blob/master/xdg_config/nvim/lua/lsp_config.lua
|
|
67 local mapper = function(mode, key, result)
|
|
68 vim.fn.nvim_buf_set_keymap(0, mode, key, result, {noremap=true, silent=true})
|
|
69 end
|
|
70
|
|
71 mapper('n', 'gd', '<cmd>lua vim.lsp.buf.declaration()<CR>')
|
|
72 mapper('n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<CR>')
|
|
73 mapper('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
|
|
74 mapper('n', 'gD', '<cmd>lua vim.lsp.buf.implementation()<CR>')
|
|
75 mapper('n', '1gD', '<cmd>lua vim.lsp.buf.type_definition()<CR>')
|
|
76 mapper('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>')
|
|
77 mapper('n', 'g0', '<cmd>lua vim.lsp.buf.document_symbol()<CR>')
|
|
78 mapper('i', '<c-l>', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
|
|
79 end
|
|
80
|
|
81 lsp.pyls.setup{
|
|
82 cmd = {"pyls"},
|
|
83 on_attach = on_attach;
|
|
84 }
|