summaryrefslogtreecommitdiff
path: root/lua/init.lua
blob: aedac4f5b804414de213874abad45c813ebb8985 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- Neotree
local neotree = require("neo-tree")
neotree.setup({
    close_if_last_window = true,
    default_component_configs = {
        git_status = {
            symbols = {
                -- Change type
                added     = "", -- or "✚"
                modified  = "", -- or ""
                deleted   = "✖",
                renamed   = "󰑕",
                -- Status type
                untracked = "",
                ignored   = "",
                unstaged  = "󰐱",
                staged    = "",
                conflict  = "",
            }
        },
    },
    filesystem = {
        filtered_items = {
            hide_dotfiles = false,
        }
    }
})

-- LSP
local mason = require("mason")
local mason_lspconfig = require("mason-lspconfig")
local lspconfig = require("lspconfig")
local cmp = require("cmp")

mason.setup()
mason_lspconfig.setup()

cmp.setup({
    snippet = {
        expand = function(args)
            vim.fn["vsnip#anonymous"](args.body)
        end,
    },
    window = {
        completion = cmp.config.window.bordered(),
        documentation = cmp.config.window.bordered(),
    },
    mapping = cmp.mapping.preset.insert({
        ['<C-b>'] = cmp.mapping.scroll_docs(-4),
        ['<C-f>'] = cmp.mapping.scroll_docs(4),
        ['<C-Space>'] = cmp.mapping.complete(),
        ['<C-e>'] = cmp.mapping.abort(),
        ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
    }),
    sources = cmp.config.sources({
        { name = 'nvim_lsp' },
        { name = 'vsnip' },
    }, {
        { name = 'buffer' },
    })
})

local lsp_capabilibies = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())

local servers = mason_lspconfig.get_installed_servers()

for _, server in ipairs(servers) do
    lspconfig[server].setup({
        capabilities = lsp_capabilibies
    })
end

require('lspconfig').gdscript.setup {
    capabilities = lsp_capabilibies
}