Attach Godot LSP server to Neovim on Linux/MacOS
This commit is contained in:
29
lua/godotdev/lsp.lua
Normal file
29
lua/godotdev/lsp.lua
Normal file
@@ -0,0 +1,29 @@
|
||||
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
|
||||
|
||||
lspconfig.gdscript.setup({
|
||||
name = "godot_editor",
|
||||
cmd = vim.lsp.rpc.connect(host, port),
|
||||
filetypes = { "gd", "gdscript" },
|
||||
root_dir = lspconfig.util.root_pattern("project.godot"),
|
||||
capabilities = capabilities,
|
||||
on_attach = function(client, bufnr)
|
||||
-- suppress known Godot unsupported messages
|
||||
utils.suppress_lsp_messages(client, { "Method not found: godot/reloadScript" })
|
||||
keymaps.attach(bufnr)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user