diff --git a/lua/custom/configs/none-ls.lua b/lua/custom/configs/none-ls.lua new file mode 100644 index 0000000..8fafb56 --- /dev/null +++ b/lua/custom/configs/none-ls.lua @@ -0,0 +1,38 @@ +local null_ls = require("null-ls") + +null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + null_ls.builtins.completion.spell, + -- require("none-ls.diagnostics.eslint"), -- requires none-ls-extras.nvim + }, +}) + +-- local augroup = vim.api.nvim_create_augroup("NoneLsFormatting", {}) +-- +-- local on_attach = function(client, bufnr) +-- if client.supports_method("textDocument/formatting") then +-- vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) +-- vim.api.nvim_create_autocmd("BufWritePre", { +-- group = augroup, +-- buffer = bufnr, +-- callback = function() +-- vim.lsp.buf.format({ bufnr = bufnr }) +-- end, +-- }) +-- end +-- end +-- +-- local null_ls = require("null-ls") +-- +-- null_ls.setup({ +-- sources = { +-- null_ls.builtins.formatting.stylua, +-- null_ls.builtins.formatting.prettierd.with({ +-- extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" }, +-- }), +-- null_ls.builtins.diagnostics.mypy.with({ extra_args = { "--ignore-missing-imports" } }), +-- }, +-- on_attach = on_attach, +-- }) +-- diff --git a/lua/custom/configs/null-ls.lua b/lua/custom/configs/null-ls.lua deleted file mode 100644 index 99cdbf1..0000000 --- a/lua/custom/configs/null-ls.lua +++ /dev/null @@ -1,21 +0,0 @@ -local null_ls = require "null-ls" - -local b = null_ls.builtins - -local sources = { - - -- webdev stuff - b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast! - b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes - - -- Lua - b.formatting.stylua, - - -- cpp - b.formatting.clang_format, -} - -null_ls.setup { - debug = true, - sources = sources, -} diff --git a/lua/custom/plugins.lua b/lua/custom/plugins.lua index a77b0ab..d052b56 100644 --- a/lua/custom/plugins.lua +++ b/lua/custom/plugins.lua @@ -5,17 +5,18 @@ local plugins = { -- Override plugin definition options + { + "nvimtools/none-ls.nvim", + lazy = false, + config = function() + require "custom.configs.none-ls" + end, + }, + + { "neovim/nvim-lspconfig", - dependencies = { - -- format & linting - { - "jose-elias-alvarez/null-ls.nvim", - config = function() - require "custom.configs.null-ls" - end, - }, - }, + dependencies = "nvimtools/none-ls.nvim", config = function() require "plugins.configs.lspconfig" require "custom.configs.lspconfig" @@ -40,10 +41,10 @@ local plugins = { }), }, - { - "nvim-treesitter/nvim-treesitter", - opts = overrides.treesitter, - }, + -- { + -- "nvim-treesitter/nvim-treesitter", + -- opts = overrides.treesitter, + -- }, { "nvim-tree/nvim-tree.lua", diff --git a/lua/plugins/configs/lspconfig.lua b/lua/plugins/configs/lspconfig.lua new file mode 100644 index 0000000..2eae8de --- /dev/null +++ b/lua/plugins/configs/lspconfig.lua @@ -0,0 +1,67 @@ +dofile(vim.g.base46_cache .. "lsp") +require "nvchad.lsp" + +local M = {} +local utils = require "core.utils" + +-- export on_attach & capabilities for custom lspconfigs + +M.on_attach = function(client, bufnr) + client.server_capabilities.documentFormattingProvider = false + client.server_capabilities.documentRangeFormattingProvider = false + + utils.load_mappings("lspconfig", { buffer = bufnr }) + + if client.server_capabilities.signatureHelpProvider then + require("nvchad.signature").setup(client) + end + + -- if not utils.load_config().ui.lsp_semantic_tokens and client.supports_method "textDocument/semanticTokens" then + -- client.server_capabilities.semanticTokensProvider = nil + -- end +end + +M.capabilities = vim.lsp.protocol.make_client_capabilities() + +M.capabilities.textDocument.completion.completionItem = { + documentationFormat = { "markdown", "plaintext" }, + snippetSupport = true, + preselectSupport = true, + insertReplaceSupport = true, + labelDetailsSupport = true, + deprecatedSupport = true, + commitCharactersSupport = true, + tagSupport = { valueSet = { 1 } }, + resolveSupport = { + properties = { + "documentation", + "detail", + "additionalTextEdits", + }, + }, +} + +require("lspconfig").lua_ls.setup { + on_attach = M.on_attach, + capabilities = M.capabilities, + + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + [vim.fn.expand "$VIMRUNTIME/lua"] = true, + [vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true, + [vim.fn.stdpath "data" .. "/lazy/ui/nvchad_types"] = true, + [vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy"] = true, + }, + maxPreload = 100000, + preloadFileSize = 10000, + }, + }, + }, +} + +return M diff --git a/lua/plugins/configs/treesitter.lua b/lua/plugins/configs/treesitter.lua new file mode 100644 index 0000000..4b9db04 --- /dev/null +++ b/lua/plugins/configs/treesitter.lua @@ -0,0 +1,12 @@ +local options = { + ensure_installed = { "lua", "elixir" }, + + highlight = { + enable = true, + use_languagetree = true, + }, + + indent = { enable = true }, +} + +return options