Files
godotdev.nvim/lua/godotdev/lsp.lua

38 lines
1.0 KiB
Lua
Raw Normal View History

local M = {}
M.setup = function(config)
config = config or {}
local lspconfig = require("lspconfig")
local utils = require("godotdev.utils")
local keymaps = require("godotdev.keymaps")
local host = config.editor_host or "127.0.0.1"
local port = config.editor_port or 6005
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.typeDefinition = nil -- suppress unsupported typeDefinition
2025-08-20 17:43:50 +02:00
local is_windows = vim.fn.has("win32") == 1 or vim.fn.has("win64") == 1
local cmd
if is_windows then
cmd = { "ncat", host, tostring(port) }
else
cmd = vim.lsp.rpc.connect(host, port)
end
lspconfig.gdscript.setup({
name = "godot_editor",
2025-08-20 17:43:50 +02:00
cmd = cmd,
2025-08-21 11:08:28 +02:00
filetypes = { "gd", "gdscript", "gdshader" },
root_dir = lspconfig.util.root_pattern("project.godot"),
capabilities = capabilities,
on_attach = function(client, bufnr)
2025-08-20 17:43:50 +02:00
utils.suppress_unsupported_lsp_messages(client, { "Method not found: godot/reloadScript" })
2025-08-21 10:21:27 +02:00
keymaps.attach_lsp(bufnr)
end,
})
end
return M