♻️ refactor(config): streamline plugins and LSP configurations for improved maintainability

This commit is contained in:
sankalp committed 2025-07-25 13:24:40 +05:45
1 parent 14627f757a
commit f7b8d3c6e9
21 files changed
+171 -1281

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
local conform = require('conform')
-- Setup formatters
conform.setup({
formatters_by_ft = {
lua = { 'stylua' },
javascript = { 'prettier' },
typescript = { 'prettier' },
javascriptreact = { 'prettier' },
typescriptreact = { 'prettier' },
markdown = { 'prettier' },
css = { 'prettier' },
scss = { 'prettier' },
html = { 'prettier' },
json = { 'prettier' },
yaml = { 'prettier' },
sh = { 'shfmt' },
elixir = { 'mix' },
-- ruby = { "rubocop" }, -- optional
},
-- Autoformat on save
format_on_save = {
timeout_ms = 1000,
lsp_fallback = true,
},
})
-- Setup mason-conform
local auto_install = require('lib.util').get_user_config('auto_install', true)
local installed_formatters = require('plugins.list').null_ls_sources or {}
require('mason-conform').setup({
ensure_installed = installed_formatters,
automatic_installation = auto_install,
})
+34 -21
View File
@@ -8,30 +8,27 @@ if auto_install then
end
local capabilities = require('blink.cmp').get_lsp_capabilities()
-- Function to load LSP config from separate files
local function load_lsp_config(server_name)
local config_path = 'lsp.' .. server_name
local ok, config = pcall(require, config_path)
if ok then
return config
end
return nil
end
local default_setup = function(server)
if server == 'tailwindcss' then
lspconfig[server].setup({
-- Check if there's a separate config file for this server
local custom_config = load_lsp_config(server)
if custom_config then
-- Use the custom configuration and add capabilities
local config = vim.tbl_deep_extend('force', custom_config, {
capabilities = capabilities,
filetypes = {
'html',
'css',
'scss',
'javascript',
'javascriptreact',
'typescript',
'typescriptreact',
'vue',
'svelte',
},
init_options = {
userLanguages = {
['javascript'] = 'javascript',
['javascriptreact'] = 'javascript',
['typescript'] = 'typescript',
['typescriptreact'] = 'typescript',
},
},
})
lspconfig[server].setup(config)
else
lspconfig[server].setup({
capabilities = capabilities,
@@ -44,6 +41,22 @@ require('mason-lspconfig').setup({
handlers = { default_setup },
})
-- Setup servers that don't come from Mason
-- Dart language server (comes with Dart SDK)
if vim.fn.executable('dart') == 1 then
local dart_config = load_lsp_config('dartls')
if dart_config then
local config = vim.tbl_deep_extend('force', dart_config, {
capabilities = capabilities,
})
lspconfig.dartls.setup(config)
else
lspconfig.dartls.setup({
capabilities = capabilities,
})
end
end
local signs = { Error = icons.Error, Warn = icons.Warning, Hint = icons.Hint, Info = icons.Information }
vim.diagnostic.config({
underline = true,