diff --git a/lazy-lock.json b/lazy-lock.json index 4ad0d0a..b0ead44 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -4,7 +4,7 @@ "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, "alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" }, "bigfile.nvim": { "branch": "main", "commit": "33eb067e3d7029ac77e081cfe7c45361887a311a" }, - "bufferline.nvim": { "branch": "main", "commit": "46192e794b73f92136326c10ecdbdbf15e35705f" }, + "bufferline.nvim": { "branch": "main", "commit": "1662fed6ecd512d1f381fc2a4e77532c379d25c6" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, @@ -18,7 +18,7 @@ "friendly-snippets": { "branch": "main", "commit": "682157939e57bd6a2c86277dfd4d6fbfce63dbac" }, "gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" }, "indent-blankline.nvim": { "branch": "master", "commit": "4036c8ae9cc29faf8e6443fa5b23e679db055d24" }, - "lazy.nvim": { "branch": "main", "commit": "4ea9fe060042f345960ad0c01aa7bca91405e10a" }, + "lazy.nvim": { "branch": "main", "commit": "378bfb465673a747e9e9f966e518063499e20cfe" }, "lsp-progress.nvim": { "branch": "main", "commit": "55a04895ea20c365b670051a3128265d43bdfa3d" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" }, @@ -27,8 +27,9 @@ "mini.indentscope": { "branch": "main", "commit": "56d42be090e8fcc68eda69cfe55af8c5e562300e" }, "neoscroll.nvim": { "branch": "master", "commit": "a731f66f1d39ec6175fd201c5bf849e54abda99c" }, "neotest": { "branch": "master", "commit": "f30bab1faef13d47f3905e065215c96a42d075ad" }, - "neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" }, - "noice.nvim": { "branch": "main", "commit": "8f1d9966762e62fa8788e5fb1a5f6a86784221d9" }, + "neotest-gtest": { "branch": "main", "commit": "b44c8afc26cea75ffc80617ce07b4e745a56e589" }, + "neotest-phpunit": { "branch": "main", "commit": "baae8dfa0a3aaacd9f0bb6845d6348f5bcdc48bb" }, + "noice.nvim": { "branch": "main", "commit": "d580646db85f49b8226d52b143a458161f41954a" }, "none-ls-extras.nvim": { "branch": "main", "commit": "336e84b9e43c0effb735b08798ffac382920053b" }, "none-ls.nvim": { "branch": "main", "commit": "f1b438ab1709cf9d8875843559d20265013ac755" }, "nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" }, @@ -37,7 +38,7 @@ "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, "nvim-dap": { "branch": "master", "commit": "5ba8ceace596360321cf33fa4b56d9d46e057ce9" }, "nvim-dap-ui": { "branch": "master", "commit": "f7d75cca202b52a60c520ec7b1ec3414d6e77b0f" }, - "nvim-dap-vscode-js": { "branch": "main", "commit": "e7c05495934a658c8aa10afd995dacd796f76091" }, + "nvim-lint": { "branch": "master", "commit": "941fa1220a61797a51f3af9ec6b7d74c8c7367ce" }, "nvim-lspconfig": { "branch": "master", "commit": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98" }, "nvim-material-icon": { "branch": "main", "commit": "2f1d6333bbec2e787774193c9fc7b447b878069a" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, @@ -62,7 +63,7 @@ "vim-startuptime": { "branch": "master", "commit": "97a88e688482a09c3c4b777d07b509b328a5ec29" }, "vim-visual-multi": { "branch": "master", "commit": "b84a6d42c1c10678928b0bf8327f378c8bc8af5a" }, "virt-column.nvim": { "branch": "master", "commit": "b62b4ef0774d19452d4ed18e473e824c7a756f2f" }, - "vscode-js-debug": { "branch": "main", "commit": "9fd0efd39d534304cffd970263148923b627be20" }, + "vscode-php-debug": { "branch": "main", "commit": "3025d1f01b5b7725e7c1c213d63f3de45f0534b3" }, "which-key.nvim": { "branch": "main", "commit": "0539da005b98b02cf730c1d9da82b8e8edb1c2d2" }, "yanky.nvim": { "branch": "main", "commit": "9268018e92d02650a94e39dd5f5903c542f7ea11" } } \ No newline at end of file diff --git a/lua/custom/default.lua b/lua/custom/default.lua index c6f0227..8c83990 100644 --- a/lua/custom/default.lua +++ b/lua/custom/default.lua @@ -156,10 +156,10 @@ pcode.active_javascript_config = { jest_command = "npm test -- ", jest_config = "jest.config.mjs", } -pcode.active_php_config = false +pcode.active_php_config = true pcode.active_golang_config = false pcode.active_python_config = false -pcode.active_cpp_config = false +pcode.active_cpp_config = true pcode.active_java_config = { active = false, project = "gradle", -- gradle or maven diff --git a/lua/plugins/_default.lua b/lua/plugins/_default.lua index 50e9b82..c6bbef0 100644 --- a/lua/plugins/_default.lua +++ b/lua/plugins/_default.lua @@ -10,9 +10,9 @@ local cmd, _ = pcall(require, "user.autocommands") if cmd then require("user.autocommands") end -local onsave, _ = pcall(require, "user.format_onsave") -if onsave then - require("user.format_onsave") -end +-- local onsave, _ = pcall(require, "user.format_onsave") +-- if onsave then +-- require("user.format_onsave") +-- end vim.g.pcode_icons = require("user.icons") return {} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 9514de8..9f23825 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,30 +1,110 @@ return { { - "neovim/nvim-lspconfig", - lazy = true, - event = "BufRead", - cmd = { - "LspInfo", - "LspInstall", - "LspUninstall", + "williamboman/mason-lspconfig.nvim", + dependencies = { + { + "neovim/nvim-lspconfig", + lazy = true, + event = "BufRead", + cmd = { + "LspInfo", + "LspInstall", + "LspUninstall", + }, + config = function() + require("lspconfig.ui.windows").default_options.border = "rounded" + end, + }, + { + "williamboman/mason.nvim", + lazy = true, + cmd = { + "Mason", + "MasonInstall", + "MasonUninstall", + "MasonUninstallAll", + "MasonLog", + }, + opts = function() + local icons = vim.g.pcode_icons.ui + return { + ui = { + -- border = "none", + border = icons.Border, + icons = { + package_pending = icons.DotCircle, + package_installed = icons.CheckCircle, + package_uninstalled = icons.BlankCircle, + }, + keymaps = { + -- Keymap to expand a server in the UI + toggle_server_expand = "", + -- Keymap to install the server under the current cursor position + install_server = "i", + -- Keymap to reinstall/update the server under the current cursor position + update_server = "u", + -- Keymap to check for new version for the server under the current cursor position + check_server_version = "c", + -- Keymap to update all installed servers + update_all_servers = "U", + -- Keymap to check which installed servers are outdated + check_outdated_servers = "C", + -- Keymap to uninstall a server + uninstall_server = "X", + }, + }, + log_level = vim.log.levels.INFO, + max_concurrent_installers = 4, + } + end, + config = function(_, opts) + require("mason").setup(opts) + end, + }, }, - config = function() - require("lspconfig.ui.windows").default_options.border = "rounded" + event = "BufReadPre", + opts = function() + local servers = { "lua_ls" } + local mason_install = pcode.mason_ensure_installed or {} + vim.list_extend(servers, mason_install) + return { + ensure_installed = servers, + automatic_installation = true, + } end, - }, - { - "williamboman/mason.nvim", - lazy = true, - dependencies = { "williamboman/mason-lspconfig.nvim" }, - cmd = { - "Mason", - "MasonInstall", - "MasonUninstall", - "MasonUninstallAll", - "MasonLog", - }, - config = function() - require("user.lsp") + config = function(_, opts) + require("mason-lspconfig").setup(opts) + + local option = {} + local unregis_lsp = pcode.unregister_lsp or {} + require("mason-lspconfig").setup_handlers({ + function(server_name) -- default handler (optional) + local capabilities = require("user.lsp.handlers").capabilities + if server_name == "clangd" then + capabilities.offsetEncoding = { "utf-16" } + end + local is_skip = false + local my_index = idxOf(unregis_lsp, server_name) + if my_index ~= nil then + is_skip = true + end + if not is_skip then + option = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = capabilities, + } + + server_name = vim.split(server_name, "@")[1] + + local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name) + if require_ok then + option = vim.tbl_deep_extend("force", conf_opts, option) + end + require("lspconfig")[server_name].setup(option) + end + end, + }) + require("user.lsp.handlers").setup() end, }, } diff --git a/lua/plugins/nonels.lua b/lua/plugins/nonels.lua index 6396c07..db824f0 100644 --- a/lua/plugins/nonels.lua +++ b/lua/plugins/nonels.lua @@ -32,8 +32,17 @@ return { debug = false, sources = sources, on_attach = function(client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + local filetype = vim.bo.filetype + local n = require("null-ls") + local s = require("null-ls.sources") + local method = n.methods.FORMATTING + local available_formatters = s.get_available(filetype, method) + + if + (#available_formatters > 0 and client.name == "null-ls") + or client.supports_method("textDocument/formatting") + then vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, buffer = bufnr, @@ -41,10 +50,24 @@ return { vim.lsp.buf.format({ bufnr = bufnr, timeout_ms = pcode.format_timeout_ms or 5000 }) end, }) + else + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ bufnr = bufnr, timeout_ms = pcode.format_timeout_ms or 5000, filter = nil }) + end, + }) end end, } else + vim.schedule(function() + pcall(function() + vim.api.nvim_clear_autocmds({ group = "LspFormatting" }) + end) + end) + return { debug = false, sources = sources, diff --git a/lua/plugins/themes/_globalvar.lua b/lua/plugins/themes/_globalvar.lua index 919bc28..5351079 100644 --- a/lua/plugins/themes/_globalvar.lua +++ b/lua/plugins/themes/_globalvar.lua @@ -28,6 +28,15 @@ _G.all_trim = function(s) return s:match("^%s*(.-)%s*$") end +_G.idxOf = function(array, value) + for i, v in ipairs(array) do + if v == value then + return i + end + end + return nil +end + -- run if rust config true if pcode.active_rust_config then table.insert(pcode.mason_ensure_installed, "rust_analyzer") diff --git a/lua/user/format_onsave.lua b/lua/user/format_onsave.lua index 48e15cb..06a1e9c 100644 --- a/lua/user/format_onsave.lua +++ b/lua/user/format_onsave.lua @@ -1,71 +1,71 @@ -local run = 0 -local frmt = pcode.format_on_save or 0 -if frmt == 1 then - run = 1 -else - run = 0 -end - -local buf_clients = vim.lsp.get_clients() -if next(buf_clients) == nil then - run = 0 -end - -if run == 1 then - -- function FORMAT_FILTER(client) - -- local filetype = vim.bo.filetype - -- local n = require("null-ls") - -- local s = require("null-ls.sources") - -- local method = n.methods.FORMATTING - -- local available_formatters = s.get_available(filetype, method) - -- - -- if #available_formatters > 0 then - -- return client.name == "null-ls" - -- elseif client.supports_method("textDocument/formatting") then - -- return true - -- else - -- return false - -- end - -- end - -- - -- vim.cmd([[ - -- augroup _lsp - -- autocmd! - -- " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter} - -- autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms=pcode.format_timeout_ms or 5000 ,filter=FORMAT_FILTER} - -- augroup end - -- ]]) - - ---filter passed to vim.lsp.buf.format - ---always selects null-ls if it's available and caches the value per buffer - ---@param client table client attached to a buffer - ---@return boolean if client matches - function FORMAT_FILTER(client) - local filetype = vim.bo.filetype - local n = require("null-ls") - local s = require("null-ls.sources") - local method = n.methods.FORMATTING - local available_formatters = s.get_available(filetype, method) - - if #available_formatters > 0 then - return client.name == "null-ls" - elseif client.supports_method("textDocument/formatting") then - return true - else - return false - end - end - vim.api.nvim_create_autocmd("BufWritePre", { - group = "lsp_format_on_save", - pattern = "*", - callback = function() - vim.lsp.buf.format({ timeout_ms = pcode.format_timeout_ms or 5000, filter = FORMAT_FILTER }) - end, - }) -else - vim.schedule(function() - pcall(function() - vim.api.nvim_clear_autocmds({ group = "lsp_format_on_save" }) - end) - end) -end +-- local run = 0 +-- local frmt = pcode.format_on_save or 0 +-- if frmt == 1 then +-- run = 1 +-- else +-- run = 0 +-- end +-- +-- local buf_clients = vim.lsp.get_clients() +-- if next(buf_clients) == nil then +-- run = 0 +-- end +-- +-- if run == 1 then +-- -- function FORMAT_FILTER(client) +-- -- local filetype = vim.bo.filetype +-- -- local n = require("null-ls") +-- -- local s = require("null-ls.sources") +-- -- local method = n.methods.FORMATTING +-- -- local available_formatters = s.get_available(filetype, method) +-- -- +-- -- if #available_formatters > 0 then +-- -- return client.name == "null-ls" +-- -- elseif client.supports_method("textDocument/formatting") then +-- -- return true +-- -- else +-- -- return false +-- -- end +-- -- end +-- -- +-- -- vim.cmd([[ +-- -- augroup _lsp +-- -- autocmd! +-- -- " autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms =200, filter=format_filter} +-- -- autocmd BufWritePre * lua vim.lsp.buf.format{timeout_ms=pcode.format_timeout_ms or 5000 ,filter=FORMAT_FILTER} +-- -- augroup end +-- -- ]]) +-- +-- ---filter passed to vim.lsp.buf.format +-- ---always selects null-ls if it's available and caches the value per buffer +-- ---@param client table client attached to a buffer +-- ---@return boolean if client matches +-- function FORMAT_FILTER(client) +-- local filetype = vim.bo.filetype +-- local n = require("null-ls") +-- local s = require("null-ls.sources") +-- local method = n.methods.FORMATTING +-- local available_formatters = s.get_available(filetype, method) +-- +-- if #available_formatters > 0 then +-- return client.name == "null-ls" +-- elseif client.supports_method("textDocument/formatting") then +-- return true +-- else +-- return false +-- end +-- end +-- vim.api.nvim_create_autocmd("BufWritePre", { +-- group = "lsp_format_on_save", +-- pattern = "*", +-- callback = function() +-- vim.lsp.buf.format({ timeout_ms = pcode.format_timeout_ms or 5000, filter = FORMAT_FILTER }) +-- end, +-- }) +-- else +-- vim.schedule(function() +-- pcall(function() +-- vim.api.nvim_clear_autocmds({ group = "lsp_format_on_save" }) +-- end) +-- end) +-- end diff --git a/lua/user/lsp/config.lua b/lua/user/lsp/config.lua index f51dd44..5fc2811 100644 --- a/lua/user/lsp/config.lua +++ b/lua/user/lsp/config.lua @@ -1,6 +1,6 @@ local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer") if not status_ok then - return + return end local lspconfig = require("lspconfig") @@ -10,23 +10,23 @@ local lspconfig = require("lspconfig") local servers = {} local installer = pcode.lsp_installer or {} for _, client in pairs(installer) do - table.insert(servers, client) + table.insert(servers, client) end lsp_installer.setup({ - ensure_installed = servers, + ensure_installed = servers, }) for _, server in pairs(servers) do - local opts = { - on_attach = require("user.lsp.handlers").on_attach, - capabilities = require("user.lsp.handlers").capabilities, - } - local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server) - if has_custom_opts then - opts = vim.tbl_deep_extend("force", opts, server_custom_opts) - end - lspconfig[server].setup(opts) + local opts = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + } + local has_custom_opts, server_custom_opts = pcall(require, "user.lsp.settings." .. server) + if has_custom_opts then + opts = vim.tbl_deep_extend("force", opts, server_custom_opts) + end + lspconfig[server].setup(opts) end -- lspconfig.yamlls.setup({ diff --git a/lua/user/lsp/init.lua b/lua/user/lsp/init.lua index 1a6bd2e..8b38610 100644 --- a/lua/user/lsp/init.lua +++ b/lua/user/lsp/init.lua @@ -1,9 +1,9 @@ -local status_ok, _ = pcall(require, "lspconfig") -if not status_ok then - return -end - -require("user.lsp.mason_cfg") ---require("user.lsp.config") -- ini hanya untuk windows supaya jdtls jalan, kalau pakai linu x remark saja -require("user.lsp.handlers").setup() ---require("user.lsp.null-lscfg") +-- local status_ok, _ = pcall(require, "lspconfig") +-- if not status_ok then +-- return +-- end +-- +-- require("user.lsp.mason_cfg") +-- --require("user.lsp.config") -- ini hanya untuk windows supaya jdtls jalan, kalau pakai linu x remark saja +-- require("user.lsp.handlers").setup() +-- --require("user.lsp.null-lscfg") diff --git a/lua/user/lsp/mason_cfg.lua b/lua/user/lsp/mason_cfg.lua index 1900e60..8bf2917 100644 --- a/lua/user/lsp/mason_cfg.lua +++ b/lua/user/lsp/mason_cfg.lua @@ -1,110 +1,110 @@ -local servers = { - "lua_ls", -} - -local function idxOf(array, value) - for i, v in ipairs(array) do - if v == value then - return i - end - end - return nil -end - -local mason_install = pcode.mason_ensure_installed or {} -for _, client in pairs(mason_install) do - table.insert(servers, client) -end - -local unregis_lsp = pcode.unregister_lsp or {} -local icons = vim.g.pcode_icons.ui - -local settings = { - ui = { - -- border = "none", - border = icons.Border, - icons = { - package_pending = icons.DotCircle, - package_installed = icons.CheckCircle, - package_uninstalled = icons.BlankCircle, - }, - keymaps = { - -- Keymap to expand a server in the UI - toggle_server_expand = "", - -- Keymap to install the server under the current cursor position - install_server = "i", - -- Keymap to reinstall/update the server under the current cursor position - update_server = "u", - -- Keymap to check for new version for the server under the current cursor position - check_server_version = "c", - -- Keymap to update all installed servers - update_all_servers = "U", - -- Keymap to check which installed servers are outdated - check_outdated_servers = "C", - -- Keymap to uninstall a server - uninstall_server = "X", - }, - }, - log_level = vim.log.levels.INFO, - max_concurrent_installers = 4, -} - -require("mason").setup(settings) --- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah -require("mason-lspconfig").setup({ - ensure_installed = servers, - automatic_installation = true, -}) +-- local servers = { +-- "lua_ls", +-- } -- --- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu) --- require("mason-lspconfig").setup() - -local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") -if not lspconfig_status_ok then - return -end - -local opts = {} - -require("mason-lspconfig").setup_handlers({ - function(server_name) -- default handler (optional) - local capabilities = require("user.lsp.handlers").capabilities - if server_name == "clangd" then - capabilities.offsetEncoding = { "utf-16" } - end - local is_skip = false - local my_index = idxOf(unregis_lsp, server_name) - if my_index ~= nil then - is_skip = true - end - if not is_skip then - opts = { - on_attach = require("user.lsp.handlers").on_attach, - capabilities = capabilities, - } - - server_name = vim.split(server_name, "@")[1] - - local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name) - if require_ok then - opts = vim.tbl_deep_extend("force", conf_opts, opts) - end - lspconfig[server_name].setup(opts) - end - end, - -- Next, you can provide targeted overrides for specific servers. - -- ["rust_analyzer"] = function() - -- require("rust-tools").setup({}) - -- end, - -- ["lua_ls"] = function() - -- lspconfig.sumneko_lua.setup({ - -- settings = { - -- Lua = { - -- diagnostics = { - -- globals = { "vim" }, - -- }, - -- }, - -- }, - -- }) - -- end, -}) +-- local function idxOf(array, value) +-- for i, v in ipairs(array) do +-- if v == value then +-- return i +-- end +-- end +-- return nil +-- end +-- +-- local mason_install = pcode.mason_ensure_installed or {} +-- for _, client in pairs(mason_install) do +-- table.insert(servers, client) +-- end +-- +-- local unregis_lsp = pcode.unregister_lsp or {} +-- local icons = vim.g.pcode_icons.ui +-- +-- local settings = { +-- ui = { +-- -- border = "none", +-- border = icons.Border, +-- icons = { +-- package_pending = icons.DotCircle, +-- package_installed = icons.CheckCircle, +-- package_uninstalled = icons.BlankCircle, +-- }, +-- keymaps = { +-- -- Keymap to expand a server in the UI +-- toggle_server_expand = "", +-- -- Keymap to install the server under the current cursor position +-- install_server = "i", +-- -- Keymap to reinstall/update the server under the current cursor position +-- update_server = "u", +-- -- Keymap to check for new version for the server under the current cursor position +-- check_server_version = "c", +-- -- Keymap to update all installed servers +-- update_all_servers = "U", +-- -- Keymap to check which installed servers are outdated +-- check_outdated_servers = "C", +-- -- Keymap to uninstall a server +-- uninstall_server = "X", +-- }, +-- }, +-- log_level = vim.log.levels.INFO, +-- max_concurrent_installers = 4, +-- } +-- +-- require("mason").setup(settings) +-- -- * buka remark ini jika akan menggunakan list serverrs diatas dan remark config dibawah +-- require("mason-lspconfig").setup({ +-- ensure_installed = servers, +-- automatic_installation = true, +-- }) +-- -- +-- -- * buka remark ini jika ingin menjalankan dengan cara install dan remark config diatas (pilih satu) +-- -- require("mason-lspconfig").setup() +-- +-- local lspconfig_status_ok, lspconfig = pcall(require, "lspconfig") +-- if not lspconfig_status_ok then +-- return +-- end +-- +-- local opts = {} +-- +-- require("mason-lspconfig").setup_handlers({ +-- function(server_name) -- default handler (optional) +-- local capabilities = require("user.lsp.handlers").capabilities +-- if server_name == "clangd" then +-- capabilities.offsetEncoding = { "utf-16" } +-- end +-- local is_skip = false +-- local my_index = idxOf(unregis_lsp, server_name) +-- if my_index ~= nil then +-- is_skip = true +-- end +-- if not is_skip then +-- opts = { +-- on_attach = require("user.lsp.handlers").on_attach, +-- capabilities = capabilities, +-- } +-- +-- server_name = vim.split(server_name, "@")[1] +-- +-- local require_ok, conf_opts = pcall(require, "user.lsp.settings." .. server_name) +-- if require_ok then +-- opts = vim.tbl_deep_extend("force", conf_opts, opts) +-- end +-- lspconfig[server_name].setup(opts) +-- end +-- end, +-- -- Next, you can provide targeted overrides for specific servers. +-- -- ["rust_analyzer"] = function() +-- -- require("rust-tools").setup({}) +-- -- end, +-- -- ["lua_ls"] = function() +-- -- lspconfig.sumneko_lua.setup({ +-- -- settings = { +-- -- Lua = { +-- -- diagnostics = { +-- -- globals = { "vim" }, +-- -- }, +-- -- }, +-- -- }, +-- -- }) +-- -- end, +-- }) diff --git a/lua/user/lsp/null-lscfg.lua b/lua/user/lsp/null-lscfg.lua index cf30f6d..ea9439e 100644 --- a/lua/user/lsp/null-lscfg.lua +++ b/lua/user/lsp/null-lscfg.lua @@ -1,84 +1,84 @@ -local null_ls_status_ok, null_ls = pcall(require, "null-ls") -if not null_ls_status_ok then - return -end - --- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting -local formatting = null_ls.builtins.formatting --- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics -local diagnostics = null_ls.builtins.diagnostics - -local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) - -local sources = {} -local ensure_installed = {} - -local data_ok, data_sources = pcall(require, "custom.null-ls") -if data_ok then - for _, cfg in pairs(data_sources.sources) do - table.insert(sources, cfg) - end -end - --- load data null-ls -local nullls_data = pcode.null_ls_ensure_installed or {} -for _, nullls in pairs(nullls_data) do - table.insert(ensure_installed, nullls) -end - -local mason_ok, mason_null_ls = pcall(require, "mason-null-ls") -if mason_ok then - mason_null_ls.setup({ - ensure_installed = ensure_installed, - }) -end - -local run = 0 -local frmt = pcode.format_on_save or 0 -if frmt == 1 then - run = 1 -end - -if run == 1 then - null_ls.setup({ - debug = false, - ensure_installed = ensure_installed, - sources = sources, - --sources = { - --formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }), - --formatting.prettier, - -- formatting.prettierd, - -- formatting.black.with({ extra_args = { "--fast" } }), - -- formatting.stylua, - -- formatting.eslint_d, - -- formatting.google_java_format, - -- formatting.phpcbf, - -- formatting.clang_format, - -- diagnostics.flake8 - -- diagnostics.eslint_d, - --}, - - on_attach = function(client, bufnr) - --if client.resolved_capabilities.document_formatting then - --vim.cmd("autocmd BufWritePre lua vim.lsp.buf.format{async=true}") - --end - 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 }) - -- vim.lsp.buf.formatting_sync() - end, - }) - end - end, - }) -else - null_ls.setup({ - debug = false, - ensure_installed = ensure_installed, - sources = sources, - }) -end +-- local null_ls_status_ok, null_ls = pcall(require, "null-ls") +-- if not null_ls_status_ok then +-- return +-- end +-- +-- -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting +-- local formatting = null_ls.builtins.formatting +-- -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics +-- local diagnostics = null_ls.builtins.diagnostics +-- +-- local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) +-- +-- local sources = {} +-- local ensure_installed = {} +-- +-- local data_ok, data_sources = pcall(require, "custom.null-ls") +-- if data_ok then +-- for _, cfg in pairs(data_sources.sources) do +-- table.insert(sources, cfg) +-- end +-- end +-- +-- -- load data null-ls +-- local nullls_data = pcode.null_ls_ensure_installed or {} +-- for _, nullls in pairs(nullls_data) do +-- table.insert(ensure_installed, nullls) +-- end +-- +-- local mason_ok, mason_null_ls = pcall(require, "mason-null-ls") +-- if mason_ok then +-- mason_null_ls.setup({ +-- ensure_installed = ensure_installed, +-- }) +-- end +-- +-- local run = 0 +-- local frmt = pcode.format_on_save or 0 +-- if frmt == 1 then +-- run = 1 +-- end +-- +-- if run == 1 then +-- null_ls.setup({ +-- debug = false, +-- ensure_installed = ensure_installed, +-- sources = sources, +-- --sources = { +-- --formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }), +-- --formatting.prettier, +-- -- formatting.prettierd, +-- -- formatting.black.with({ extra_args = { "--fast" } }), +-- -- formatting.stylua, +-- -- formatting.eslint_d, +-- -- formatting.google_java_format, +-- -- formatting.phpcbf, +-- -- formatting.clang_format, +-- -- diagnostics.flake8 +-- -- diagnostics.eslint_d, +-- --}, +-- +-- on_attach = function(client, bufnr) +-- --if client.resolved_capabilities.document_formatting then +-- --vim.cmd("autocmd BufWritePre lua vim.lsp.buf.format{async=true}") +-- --end +-- 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 }) +-- -- vim.lsp.buf.formatting_sync() +-- end, +-- }) +-- end +-- end, +-- }) +-- else +-- null_ls.setup({ +-- debug = false, +-- ensure_installed = ensure_installed, +-- sources = sources, +-- }) +-- end diff --git a/lua/user/utils/lualine_component.lua b/lua/user/utils/lualine_component.lua index b64fcb5..dc6e0c4 100644 --- a/lua/user/utils/lualine_component.lua +++ b/lua/user/utils/lualine_component.lua @@ -122,6 +122,8 @@ return { table.insert(buf_client_names, "lsp_fmt") end end + elseif not status and supported_formatters and #supported_formatters == 0 then + table.insert(buf_client_names, "lsp_fmt") end -- add linter