71 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
vim.lsp.config.svelte = {}
 | 
						|
vim.lsp.config.gopls = {}
 | 
						|
vim.lsp.config.ts_ls = {}
 | 
						|
 | 
						|
vim.lsp.config.expert = {
 | 
						|
    cmd = { vim.fn.expand '$HOME/.local/bin/expert' },
 | 
						|
    root_markers = { 'mix.exs', '.git' },
 | 
						|
    filetypes = { 'elixir', 'eelixir', 'heex' },
 | 
						|
}
 | 
						|
 | 
						|
vim.lsp.config.lua_ls = {
 | 
						|
    settings = {
 | 
						|
        Lua = {
 | 
						|
            runtime = {
 | 
						|
                version = "LuaJIT",
 | 
						|
            },
 | 
						|
            diagnostics = {
 | 
						|
                globals = { "vim" },
 | 
						|
            },
 | 
						|
            workspace = {
 | 
						|
                checkThirdParty = false,
 | 
						|
                library = vim.api.nvim_get_runtime_file("", true),
 | 
						|
            },
 | 
						|
            telemetry = {
 | 
						|
                enable = false,
 | 
						|
            },
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
vim.lsp.config.intelephense = {
 | 
						|
    init_options = { licenceKey = vim.fn.stdpath("config") .. "/intelephense-license" },
 | 
						|
    settings = {
 | 
						|
        intelephense = {
 | 
						|
            files = { maxSize = 1000000000 },
 | 
						|
            format = { enable = false },
 | 
						|
            stubs = require "intelephense_stubs",
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
vim.lsp.config.nixd = {
 | 
						|
    settings = {
 | 
						|
        formatting = {
 | 
						|
            command = { "nixfmt" },
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
vim.lsp.enable { 'expert', 'lua_ls', 'svelte', 'intelephense', 'nixd', 'gopls', 'ts_ls' }
 | 
						|
 | 
						|
vim.api.nvim_create_autocmd("LspAttach", {
 | 
						|
    callback = function(args)
 | 
						|
        local client = vim.lsp.get_client_by_id(args.data.client_id)
 | 
						|
 | 
						|
        if not client then
 | 
						|
            return
 | 
						|
        end
 | 
						|
 | 
						|
        if client.server_capabilities.documentHighlightProvider then
 | 
						|
            vim.api.nvim_create_autocmd({ "CursorHold" }, {
 | 
						|
                callback = vim.lsp.buf.document_highlight,
 | 
						|
                buffer = args.buf,
 | 
						|
            })
 | 
						|
            vim.api.nvim_create_autocmd({ "CursorMoved" }, {
 | 
						|
                callback = vim.lsp.buf.clear_references,
 | 
						|
                buffer = args.buf,
 | 
						|
            })
 | 
						|
        end
 | 
						|
    end,
 | 
						|
})
 |