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,
 | |
| })
 |