summaryrefslogtreecommitdiff
path: root/nvim/lua/kkard2/lazy/lsp.lua
blob: 54797cc111611b6f316a8eb36e8429914bcb61ab (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
-- WARNING: BAD CODE AHEAD
-- look at your own risk
local function rename_file()
    local source_file, target_file

    vim.ui.input({
        prompt = "Source : ",
        completion = "file",
        default = vim.api.nvim_buf_get_name(0)
    },
        function(input)
            source_file = input
        end
    )
    vim.ui.input({
        prompt = "Target : ",
        completion = "file",
        default = source_file
    },
        function(input)
            target_file = input
        end
    )

    local params = {
        command = "_typescript.applyRenameFile",
        arguments = {
            {
                sourceUri = source_file,
                targetUri = target_file,
            },
        },
        title = ""
    }

    vim.lsp.util.rename(source_file, target_file)
    vim.lsp.buf.execute_command(params)
end
-- END OF WARNING

return function()
    local lsp = require("lsp-zero").preset({})

    lsp.on_attach(function(_, bufnr)
        -- see :help lsp-zero-keybindings
        -- to learn the available actions
        lsp.default_keymaps({ buffer = bufnr })
    end)

    -- (Optional) Configure lua language server for neovim
    require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())

    lsp.setup()

    vim.keymap.set("n", "gh", vim.diagnostic.open_float)
    vim.keymap.set("n", "<leader>lr", vim.lsp.buf.rename)
    vim.keymap.set("n", "<leader><CR>", vim.lsp.buf.code_action)
    vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format)

    vim.g.zig_fmt_autosave = 0

    -- temp
    require("lspconfig").tsserver.setup({
        commands = {
            RenameFile = {
                rename_file,
                description = "Rename File"
            },
        }
    })
    -- end temp
end