diff --git a/lua/plugins/odin.lua b/lua/plugins/odin.lua new file mode 100644 index 0000000..6c62915 --- /dev/null +++ b/lua/plugins/odin.lua @@ -0,0 +1,44 @@ +-- Odin Language Support + +return { + -- Treesitter + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "odin" }) + end + end, + }, + + -- Mason + { + "mason-org/mason.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "ols", "odinfmt" }) + end, + }, + + -- LSP Config + { + "neovim/nvim-lspconfig", + opts = { + servers = { + ols = { + root_markers = { "ols.json", "odinfmt.json", ".git" }, + }, + }, + }, + }, + + -- Conform + { + "stevearc/conform.nvim", + opts = { + formatters_by_ft = { + odin = { "odinfmt" }, + }, + }, + }, +}