summaryrefslogtreecommitdiff
path: root/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-19 18:34:13 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-19 18:34:13 +0900
commit307fceea38b7352a79b0bdb87025a34b76973867 (patch)
tree382eb3e6a11973bc2c6ba33eee14d43ec2a9566b /ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua
parentb66f68b8c014a3041c936ee9de1b57db5bcb50fb (diff)
updates
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua')
-rw-r--r--ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua674
1 files changed, 0 insertions, 674 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua
deleted file mode 100644
index c725789..0000000
--- a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/lsp.lua
+++ /dev/null
@@ -1,674 +0,0 @@
-return {
- {
- "neovim/nvim-lspconfig",
- event = { "BufReadPre", "BufNewFile" },
- dependencies = {
- "mason-org/mason.nvim",
- "mason-org/mason-lspconfig.nvim",
- "WhoIsSethDaniel/mason-tool-installer.nvim",
- "hrsh7th/cmp-nvim-lsp",
- "hrsh7th/cmp-buffer",
- "hrsh7th/cmp-path",
- "hrsh7th/cmp-cmdline",
- "hrsh7th/nvim-cmp",
- {
- "L3MON4D3/LuaSnip",
- version = "v2.*",
- build = "make install_jsregexp",
- },
- "mfussenegger/nvim-lint",
- "saadparwaiz1/cmp_luasnip",
- "j-hui/fidget.nvim",
- { "folke/neoconf.nvim", cmd = "Neoconf", config = false, dependencies = { "nvim-lspconfig" } },
- {
- "folke/lazydev.nvim",
- ft = "lua", -- only load on lua files
- opts = {
- library = {
- -- See the configuration section for more details
- -- Load luvit types when the `vim.uv` word is found
- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
- },
- },
- },
- "stevearc/conform.nvim",
- },
- init = function()
- local wk = require("which-key")
- wk.add({
- mode = { "n", "v", "x" },
- { "<leader>tf", group = "Format" },
- })
- end,
- config = function()
- local cmp = require("cmp")
- local cmp_lsp = require("cmp_nvim_lsp")
- local capabilities = vim.tbl_deep_extend(
- "force",
- {},
- vim.lsp.protocol.make_client_capabilities(),
- cmp_lsp.default_capabilities()
- )
- local lspconfig = require("lspconfig")
-
- require("fidget").setup({
- progress = {
- poll_rate = false, -- How and when to poll for progress messages
- suppress_on_insert = true, -- Suppress new messages while in insert mode
- ignore_done_already = true, -- Ignore new tasks that are already complete
- ignore_empty_message = true, -- Ignore new tasks that don't contain a message
- clear_on_detach = function(client_id) -- Clear notification group when LSP server detaches
- local client = vim.lsp.get_client_by_id(client_id)
- return client and client.name or nil
- end,
- -- ignore = { "lua_ls" },
- },
- notification = {
- window = {
- normal_hl = "Comment", -- Base highlight group in the notification window
- winblend = 0, -- Background color opacity in the notification window
- border = "none", -- Border around the notification window
- zindex = 45, -- Stacking priority of the notification window
- max_width = 0, -- Maximum width of the notification window
- max_height = 0, -- Maximum height of the notification window
- x_padding = 1, -- Padding from right edge of window boundary
- y_padding = 0, -- Padding from bottom edge of window boundary
- align = "bottom", -- How to align the notification window
- relative = "editor", -- What the notification window position is relative to
- },
- },
- integration = {
- ["nvim-tree"] = {
- enable = false, -- Integrate with nvim-tree/nvim-tree.lua (if installed)
- },
- },
- })
-
- require("mason").setup()
- require("mason-lspconfig").setup({
- ensure_installed = {
- "bashls",
- "dockerls",
- "docker_compose_language_service",
- "harper_ls",
- "jdtls",
- "jsonls",
- "lua_ls",
- "mutt_ls",
- "pyright",
- "ruff",
- },
- automatic_installation = true,
- handlers = {
- function(server_name) -- default handler (optional)
- require("lspconfig")[server_name].setup({
- capabilities = capabilities,
- })
- end,
- ["bashls"] = function()
- lspconfig.bashls.setup({
- capabilities = capabilities,
- })
- end,
- ["dockerls"] = function()
- lspconfig.dockerls.setup({
- capabilities = capabilities,
- -- settings = {
- -- python = {
- -- disableLanguageServices = false,
- -- disableOrganizeImports = false,
- -- },
- -- },
- })
- end,
- ["docker_compose_language_service"] = function()
- lspconfig.docker_compose_language_service.setup({
- capabilities = capabilities,
- -- settings = {
- -- python = {
- -- disableLanguageServices = false,
- -- disableOrganizeImports = false,
- -- },
- -- },
- })
- end,
- ["harper_ls"] = function()
- lspconfig.harper_ls.setup({
- capabilities = capabilities,
- filetypes = { "markdown", "python" },
- settings = {
- ToDoHyphen = false,
- -- SentenceCapitalization = true,
- -- SpellCheck = true,
- isolateEnglish = true,
- markdown = {
- -- [ignores this part]()
- -- [[ also ignores my marksman links ]]
- IgnoreLinkTitle = true,
- },
- },
- })
- end,
- ["jdtls"] = function()
- lspconfig.jdtls.setup({
- capabilities = capabilities,
- })
- end,
- ["jsonls"] = function()
- lspconfig.jsonls.setup({
- capabilities = capabilities,
- settings = {
- json = {
- format = {
- enable = true,
- },
- validate = { enable = true },
- },
- },
- })
- end,
- ["lua_ls"] = function()
- lspconfig.lua_ls.setup({
- capabilities = capabilities,
- settings = {
- Lua = {
- runtime = { version = "Lua 5.4" },
- diagnostics = {
- globals = { "bit", "vim", "it", "describe", "before_each", "after_each" },
- },
- },
- },
- })
- end,
- ["mutt_ls"] = function()
- lspconfig.mutt_ls.setup({
- capabilities = capabilities,
- })
- end,
- ["pyright"] = function()
- lspconfig.pyright.setup({
- capabilities = capabilities,
- settings = {
- python = {
- disableLanguageServices = false,
- disableOrganizeImports = false,
- },
- },
- })
- end,
- ["ruff"] = function()
- lspconfig.ruff.setup({
- capabilities = capabilities,
- -- settings = {
- -- python = {
- -- disableLanguageServices = false,
- -- disableOrganizeImports = false,
- -- },
- -- },
- })
- end,
- },
- })
-
- local lint = require("lint")
- lint.linters_by_ft = {
- dockerfile = { "hadolint" },
- javascript = { "eslint_d" },
- typescript = { "eslint_d" },
- javascriptreact = { "eslint_d" },
- typescriptreact = { "eslint_d" },
- svelte = { "eslint_d" },
- python = { "pylint" },
- sh = { "shellcheck" },
- }
-
- local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave", "TextChanged" }, {
- group = lint_augroup,
- callback = function()
- lint.try_lint()
- end,
- })
-
- require("mason-tool-installer").setup({
- ensure_installed = {
- "beautysh", -- zsh formatter
- "black", -- python formatter
- "debugpy", -- python debuger
- "eslint_d", -- eslint linter
- "hadolint", -- docker linter
- "isort", -- python formatter
- "java-debug-adapter", -- java debugger
- "java-test", -- java test
- "markdown-toc", -- markdown toc
- "prettier", -- prettier formatter
- "pylint", -- python linter
- "ruff", -- python formatter
- "shellcheck", -- bash lint
- "shfmt", -- sh formatter
- "stylua", -- lua formatter
- },
- integrations = {
- ["mason-lspconfig"] = true,
- ["mason-null-ls"] = false,
- ["mason-nvim-dap"] = true,
- },
- })
-
- local cmp_select = { behavior = cmp.SelectBehavior.Select }
- local luasnip = require("luasnip")
-
- cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body) -- For `luasnip` users.
- end,
- },
- mapping = cmp.mapping.preset.insert({
- ["<C-u>"] = cmp.mapping.scroll_docs(-4), -- Up
- ["<C-d>"] = cmp.mapping.scroll_docs(4), -- Down
- ["<C-p>"] = cmp.mapping.select_prev_item(cmp_select),
- ["<C-n>"] = cmp.mapping.select_next_item(cmp_select),
- ["<CR>"] = cmp.mapping.confirm({
- behavior = cmp.ConfirmBehavior.Replace,
- select = true,
- }),
- ["<C-Space>"] = cmp.mapping.complete(),
- ["<Tab>"] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_next_item()
- elseif luasnip.expand_or_jumpable() then
- luasnip.expand_or_jump()
- else
- fallback()
- end
- end, { "i", "s" }),
- ["<S-Tab>"] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_prev_item()
- elseif luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
- end, { "i", "s" }),
- }),
- sources = cmp.config.sources({
- { name = "nvim_lsp" },
- { name = "luasnip" }, -- For luasnip users.
- { name = "buffer" },
- }),
- })
-
- vim.diagnostic.config({
- update_in_insert = true,
- float = {
- header = "",
- border = "rounded",
- prefix = "",
- source = "if_many",
- },
- })
-
- require("conform").setup({
- formatters_by_ft = {
- bash = { "shfmt" },
- css = { "prettier" },
- graphql = { "prettier" },
- html = { "prettier" },
- javascript = { "prettier" },
- javascriptreact = { "prettier" },
- json = { "prettier" },
- liquid = { "prettier" },
- lua = { "stylua" },
- markdown = { "prettier" },
- python = { "ruff", "isort", "black" },
- sh = { "shfmt" },
- svelte = { "prettier" },
- typescript = { "prettier" },
- typescriptreact = { "prettier" },
- vimwiki = { "prettier" },
- yaml = { "prettier" },
- zsh = { "beautysh" },
- },
- default_format_opts = {},
- format_on_save = function(bufnr)
- -- Disable with a global or buffer-local variable
- if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
- return
- end
- return { lsp_format = "fallback", timeout_ms = 1000, async = false }
- end,
- })
-
- vim.api.nvim_create_user_command("FormatDisable", function(args)
- if args.bang then
- vim.b.disable_autoformat = true
- else
- vim.g.disable_autoformat = true
- end
- end, {
- desc = "Disable autoformat-on-save",
- bang = true,
- })
- vim.api.nvim_create_user_command("FormatEnable", function()
- vim.b.disable_autoformat = false
- vim.g.disable_autoformat = false
- end, {
- desc = "Re-enable autoformat-on-save",
- })
- end,
- keys = {
- {
- "<leader>lf",
- function()
- require("conform").format({ async = true })
- end,
- mode = { "n", "v" },
- desc = "Format buffer by lsp",
- },
- {
- "<leader>ci",
- "<cmd>PyrightOrganizeImports<cr>",
- desc = "Organize imports",
- },
- {
- "<leader>bl",
- function()
- require("lint").try_lint()
- end,
- desc = "Buffer lint",
- },
- {
- "<leader>le",
- "<cmd>FormatEnable<CR>",
- desc = "Enable format",
- },
- {
- "<leader>ld",
- "<cmd>FormatDisable<CR>",
- desc = "Disable format",
- },
- {
- "<leader>lD",
- "<cmd>FormatDisable!<CR>",
- desc = "Disable current buffer format",
- },
- },
- },
- -- {
- -- "neovim/nvim-lspconfig",
- -- event = { "BufReadPre", "BufNewFile" },
- -- dependencies = {
- -- "mason-org/mason.nvim",
- -- "mason-org/mason-lspconfig.nvim",
- -- "WhoIsSethDaniel/mason-tool-installer.nvim",
- -- "hrsh7th/cmp-nvim-lsp",
- -- "hrsh7th/cmp-buffer",
- -- "hrsh7th/cmp-path",
- -- "hrsh7th/cmp-cmdline",
- -- {
- -- "L3MON4D3/LuaSnip",
- -- version = "v2.*",
- -- build = "make install_jsregexp",
- -- },
- -- "mfussenegger/nvim-lint",
- -- "saadparwaiz1/cmp_luasnip",
- -- "j-hui/fidget.nvim",
- -- { "folke/neoconf.nvim", cmd = "Neoconf", config = false, dependencies = { "nvim-lspconfig" } },
- -- {
- -- "folke/lazydev.nvim",
- -- ft = "lua", -- only load on lua files
- -- opts = {
- -- library = {
- -- -- See the configuration section for more details
- -- -- Load luvit types when the `vim.uv` word is found
- -- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
- -- },
- -- },
- -- },
- -- "stevearc/conform.nvim",
- -- "saghen/blink.cmp",
- -- },
- -- init = function()
- -- local wk = require("which-key")
- -- wk.add({
- -- mode = { "n", "v", "x" },
- -- { "<leader>tf", group = "Format" },
- -- })
- -- end,
- -- opts = {
- -- servers = {
- -- lua_ls = {
- -- settings = {
- -- Lua = {
- -- workspace = {
- -- checkThirdParty = false,
- -- },
- -- codeLens = {
- -- enable = true,
- -- },
- -- completion = {
- -- callSnippet = "Replace",
- -- },
- -- doc = {
- -- privateName = { "^_" },
- -- },
- -- hint = {
- -- enable = true,
- -- setType = false,
- -- paramType = true,
- -- paramName = "Disable",
- -- semicolon = "Disable",
- -- arrayIndex = "Disable",
- -- },
- -- runtime = { version = "Lua 5.4" },
- -- diagnostics = {
- -- globals = { "bit", "vim", "it", "describe", "before_each", "after_each" },
- -- },
- -- },
- -- },
- -- },
- -- pyright = {
- -- settings = {
- -- python = {
- -- disableLanguageServices = false,
- -- disableOrganizeImports = false,
- -- },
- -- },
- -- },
- -- },
- -- },
- -- config = function(_, opts)
- -- local cmp = require("blink.cmp")
- -- local lspconfig = require("lspconfig")
- --
- -- require("mason").setup()
- --
- -- for server, config in pairs(opts.servers) do
- -- -- passing config.capabilities to blink.cmp merges with the capabilities in your
- -- -- `opts[server].capabilities, if you've defined it
- -- config.capabilities = cmp.get_lsp_capabilities(config.capabilities)
- -- lspconfig[server].setup(config)
- -- require("mason-lspconfig").setup({
- -- ensure_installed = { server },
- -- handlers = {
- -- [server] = function()
- -- lspconfig[server].setup(config)
- -- end,
- -- },
- -- })
- -- end
- --
- -- require("fidget").setup({
- -- progress = {
- -- poll_rate = 0, -- How and when to poll for progress messages
- -- suppress_on_insert = true, -- Suppress new messages while in insert mode
- -- ignore_done_already = true, -- Ignore new tasks that are already complete
- -- ignore_empty_message = true, -- Ignore new tasks that don't contain a message
- -- clear_on_detach = function(client_id) -- Clear notification group when LSP server detaches
- -- local client = vim.lsp.get_client_by_id(client_id)
- -- return client and client.name or nil
- -- end,
- -- ignore = { "lua_ls" },
- -- },
- -- notification = {
- -- window = {
- -- normal_hl = "Comment", -- Base highlight group in the notification window
- -- winblend = 0, -- Background color opacity in the notification window
- -- border = "none", -- Border around the notification window
- -- zindex = 45, -- Stacking priority of the notification window
- -- max_width = 0, -- Maximum width of the notification window
- -- max_height = 0, -- Maximum height of the notification window
- -- x_padding = 1, -- Padding from right edge of window boundary
- -- y_padding = 0, -- Padding from bottom edge of window boundary
- -- align = "bottom", -- How to align the notification window
- -- relative = "editor", -- What the notification window position is relative to
- -- },
- -- },
- -- integration = {
- -- ["nvim-tree"] = {
- -- enable = false, -- Integrate with nvim-tree/nvim-tree.lua (if installed)
- -- },
- -- },
- -- })
- --
- -- local lint = require("lint")
- -- lint.linters_by_ft = {
- -- javascript = { "eslint_d" },
- -- typescript = { "eslint_d" },
- -- javascriptreact = { "eslint_d" },
- -- typescriptreact = { "eslint_d" },
- -- svelte = { "eslint_d" },
- -- python = { "pylint" },
- -- sh = { "shellcheck" },
- -- }
- --
- -- local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true })
- -- vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave", "TextChanged" }, {
- -- group = lint_augroup,
- -- callback = function()
- -- lint.try_lint()
- -- end,
- -- })
- --
- -- require("mason-tool-installer").setup({
- -- ensure_installed = {
- -- "beautysh", -- zsh formatter
- -- "black", -- python formatter
- -- "debugpy", -- python debuger
- -- "eslint_d", -- eslint linter
- -- "isort", -- python formatter
- -- "markdown-toc", -- markdown toc
- -- "prettier", -- prettier formatter
- -- "pylint", -- python linter
- -- "ruff", -- python formatter
- -- "shellcheck", -- bash lint
- -- "shfmt", -- sh formatter
- -- "stylua", -- lua formatter
- -- },
- -- integrations = {
- -- ["mason-lspconfig"] = true,
- -- ["mason-null-ls"] = false,
- -- ["mason-nvim-dap"] = true,
- -- },
- -- })
- --
- -- vim.diagnostic.config({
- -- -- update_in_insert = true,
- -- float = {
- -- focusable = false,
- -- style = "minimal",
- -- border = "rounded",
- -- source = "always",
- -- header = "",
- -- prefix = "",
- -- },
- -- })
- --
- -- require("conform").setup({
- -- formatters_by_ft = {
- -- bash = { "shfmt" },
- -- css = { "prettier" },
- -- graphql = { "prettier" },
- -- html = { "prettier" },
- -- javascript = { "prettier" },
- -- javascriptreact = { "prettier" },
- -- json = { "prettier" },
- -- liquid = { "prettier" },
- -- lua = { "stylua" },
- -- markdown = { "prettier" },
- -- python = { "ruff", "isort", "black" },
- -- sh = { "shfmt" },
- -- svelte = { "prettier" },
- -- typescript = { "prettier" },
- -- typescriptreact = { "prettier" },
- -- yaml = { "prettier" },
- -- zsh = { "beautysh" },
- -- },
- -- default_format_opts = {},
- -- format_on_save = function(bufnr)
- -- -- Disable with a global or buffer-local variable
- -- if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
- -- return
- -- end
- -- return { lsp_format = "fallback", timeout_ms = 1000, async = false }
- -- end,
- -- })
- --
- -- vim.api.nvim_create_user_command("FormatDisable", function(args)
- -- if args.bang then
- -- vim.b.disable_autoformat = true
- -- else
- -- vim.g.disable_autoformat = true
- -- end
- -- end, {
- -- desc = "Disable autoformat-on-save",
- -- bang = true,
- -- })
- -- vim.api.nvim_create_user_command("FormatEnable", function()
- -- vim.b.disable_autoformat = false
- -- vim.g.disable_autoformat = false
- -- end, {
- -- desc = "Re-enable autoformat-on-save",
- -- })
- -- end,
- -- keys = {
- -- {
- -- mode = { "n", "v" },
- -- "<leader>lf",
- -- function()
- -- require("conform").format({ async = true })
- -- end,
- -- desc = "Format buffer by lsp",
- -- },
- -- {
- -- "<leader>ci",
- -- "<cmd>PyrightOrganizeImports<cr>",
- -- desc = "Organize imports",
- -- },
- -- {
- -- "<leader>bl",
- -- function()
- -- require("lint").try_lint()
- -- end,
- -- desc = "Buffer lint",
- -- },
- -- {
- -- "<leader>le",
- -- "<cmd>FormatEnable<CR>",
- -- desc = "Enable format",
- -- },
- -- {
- -- "<leader>ld",
- -- "<cmd>FormatDisable<CR>",
- -- desc = "Disable format",
- -- },
- -- {
- -- "<leader>lD",
- -- "<cmd>FormatDisable!<CR>",
- -- desc = "Disable current buffer format",
- -- },
- -- },
- -- },
-}