aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/nvim-lspconfig.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/plugins/nvim-lspconfig.lua')
-rw-r--r--.config/nvim/lua/plugins/nvim-lspconfig.lua131
1 files changed, 131 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins/nvim-lspconfig.lua b/.config/nvim/lua/plugins/nvim-lspconfig.lua
new file mode 100644
index 0000000..267ecf6
--- /dev/null
+++ b/.config/nvim/lua/plugins/nvim-lspconfig.lua
@@ -0,0 +1,131 @@
+local config = function()
+ require("neoconf").setup({})
+ local cmp_nvim_lsp = require("cmp_nvim_lsp")
+ local lspconfig = require("lspconfig")
+
+ local capabilities = cmp_nvim_lsp.default_capabilities()
+
+ -- lua
+ -- lspconfig.lua_ls.setup({
+ -- capabilities = capabilities,
+ -- on_attach = on_attach,
+ -- settings = { -- custom settings for lua
+ -- Lua = {
+ -- -- make the language server recognize "vim" global
+ -- diagnostics = {
+ -- globals = { "vim" },
+ -- },
+ -- workspace = {
+ -- -- make language server aware of runtime files
+ -- library = {
+ -- [vim.fn.expand("$VIMRUNTIME/lua")] = true,
+ -- [vim.fn.stdpath("config") .. "/lua"] = true,
+ -- },
+ -- },
+ -- },
+ -- },
+ -- })
+
+ -- python
+ lspconfig.pyright.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ settings = {
+ pyright = {
+ disableOrganizeImports = false,
+ analysis = {
+ useLibraryCodeForTypes = true,
+ autoSearchPaths = true,
+ diagnosticMode = "workspace",
+ autoImportCompletions = true,
+ },
+ },
+ },
+ })
+
+ -- bash
+ lspconfig.bashls.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ filetypes = { "sh" },
+ })
+
+ -- docker
+ lspconfig.dockerls.setup({
+ capabilities = capabilities,
+ on_attach = on_attach,
+ })
+
+ -- local luacheck = require("efmls-configs.linters.luacheck")
+ -- local stylua = require("efmls-configs.formatters.stylua")
+ -- local flake8 = require("efmls-configs.linters.flake8")
+ -- local black = require("efmls-configs.formatters.black")
+ -- local eslint_d = require("efmls-configs.linters.eslint_d")
+ -- local prettierd = require("efmls-configs.formatters.prettier_d")
+ -- local fixjson = require("efmls-configs.formatters.fixjson")
+ -- local shellcheck = require("efmls-configs.linters.shellcheck")
+ -- local shfmt = require("efmls-configs.formatters.shfmt")
+ -- local alex = require("efmls-configs.linters.alex")
+ -- local hadolint = require("efmls-configs.linters.hadolint")
+ -- local solhint = require("efmls-configs.linters.solhint")
+
+ -- configure efm server
+-- lspconfig.efm.setup({
+-- filetypes = {
+-- "lua",
+-- "python",
+-- "json",
+-- "jsonc",
+-- "sh",
+-- "javascript",
+-- "javascriptreact",
+-- "typescript",
+-- "typescriptreact",
+-- "svelte",
+-- "vue",
+-- "markdown",
+-- "docker",
+-- "solidity",
+-- },
+-- init_options = {
+-- documentFormatting = true,
+-- documentRangeFormatting = true,
+-- hover = true,
+-- documentSymbol = true,
+-- codeAction = true,
+-- completion = true,
+-- },
+-- settings = {
+-- languages = {
+-- lua = { luacheck, stylua },
+-- python = { flake8, black },
+-- typescript = { eslint_d, prettierd },
+-- json = { eslint_d, fixjson },
+-- jsonc = { eslint_d, fixjson },
+-- sh = { shellcheck, shfmt },
+-- javascript = { eslint_d, prettierd },
+-- javascriptreact = { eslint_d, prettierd },
+-- typescriptreact = { eslint_d, prettierd },
+-- svelte = { eslint_d, prettierd },
+-- vue = { eslint_d, prettierd },
+-- markdown = { alex, prettierd },
+-- docker = { hadolint, prettierd },
+-- solidity = { solhint },
+-- },
+-- },
+-- })
+end
+
+return {
+ "neovim/nvim-lspconfig",
+ config = config,
+ lazy = false,
+ dependencies = {
+ "windwp/nvim-autopairs",
+ "williamboman/mason.nvim",
+ -- "creativenull/efmls-configs-nvim",
+ "hrsh7th/nvim-cmp",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-nvim-lsp",
+ },
+}