From 0528e0687370ea8ca4a0000b7e64c580dc52dbcb Mon Sep 17 00:00:00 2001 From: 0xTux <0xtux@pm.me> Date: Sun, 3 Mar 2024 01:49:50 +0530 Subject: [PATCH] update nvim config --- pkgs/nvchad/custom/configs/conform.lua | 6 +++ pkgs/nvchad/custom/configs/lspconfig.lua | 50 +++++++++++++----------- pkgs/nvchad/custom/configs/nvim-lint.lua | 21 ++++++++++ pkgs/nvchad/custom/configs/overrides.lua | 2 + pkgs/nvchad/custom/plugins.lua | 26 +++++++++--- 5 files changed, 77 insertions(+), 28 deletions(-) create mode 100644 pkgs/nvchad/custom/configs/nvim-lint.lua diff --git a/pkgs/nvchad/custom/configs/conform.lua b/pkgs/nvchad/custom/configs/conform.lua index 3e6ae80..724d450 100644 --- a/pkgs/nvchad/custom/configs/conform.lua +++ b/pkgs/nvchad/custom/configs/conform.lua @@ -16,6 +16,12 @@ local options = { markdown = { prettier }, nix = { "alejandra" }, }, + + format_on_save = { + lsp_fallback = true, + async = false, + timeout_ms = 1000, + }, } require("conform").setup(options) diff --git a/pkgs/nvchad/custom/configs/lspconfig.lua b/pkgs/nvchad/custom/configs/lspconfig.lua index bfd69cd..4ff8912 100644 --- a/pkgs/nvchad/custom/configs/lspconfig.lua +++ b/pkgs/nvchad/custom/configs/lspconfig.lua @@ -1,32 +1,36 @@ -local configs = require "plugins.configs.lspconfig" +local configs = require("plugins.configs.lspconfig") local on_attach = configs.on_attach local capabilities = configs.capabilities -local lspconfig = require "lspconfig" --- local util = require "lspconfig/util" +local lspconfig = require("lspconfig") local servers = { "tsserver", "tailwindcss", "eslint" } -for _, lsp in ipairs(servers) do - lspconfig[lsp].setup { - on_attach = on_attach, - capabilities = capabilities, +local function organize_imports() + local params = { + command = "_typescript.organizeImports", + arguments = { vim.api.nvim_buf_get_name(0) }, + title = "", } + vim.lsp.buf.execute_command(params) end --- lspconfig.gopls.setup { --- on_attach = on_attach, --- capabilities = capabilities, --- cmd = { "gopls" }, --- filetypes = { "go", "gomod", "gowork", "gotmpl" }, --- root_dir = util.root_pattern("go.work", "go.mod", ".git"), --- settings = { --- gopls = { --- completeUnimported = true, --- usePlaceholders = true, --- analyses = { --- unusedparams = true, --- }, --- }, --- }, --- } +for _, lsp in ipairs(servers) do + if lsp == "tsserver" then + lspconfig[lsp].setup({ + on_attach = on_attach, + capabilities = capabilities, + commands = { + OrganizeImports = { + organize_imports, + description = "Organize Imports", + }, + }, + }) + else + lspconfig[lsp].setup({ + on_attach = on_attach, + capabilities = capabilities, + }) + end +end diff --git a/pkgs/nvchad/custom/configs/nvim-lint.lua b/pkgs/nvchad/custom/configs/nvim-lint.lua new file mode 100644 index 0000000..94edf0c --- /dev/null +++ b/pkgs/nvchad/custom/configs/nvim-lint.lua @@ -0,0 +1,21 @@ +-- Doesn't work + +local lint = require("lint") + +lint.linters_by_ft = { + lua = { "luacheck" }, + javascript = { "eslint_d" }, + typescript = { "eslint_d" }, + javascriptreact = { "eslint_d" }, + typescriptreact = { { "eslint_d" } }, + nix = { "statix" }, +} + +local lint_augroup = vim.api.nvim_create_augroup("lint", { clear = true }) + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + group = lint_augroup, + callback = function() + lint.try_lint() + end, +}) diff --git a/pkgs/nvchad/custom/configs/overrides.lua b/pkgs/nvchad/custom/configs/overrides.lua index 4915bab..e3db26a 100644 --- a/pkgs/nvchad/custom/configs/overrides.lua +++ b/pkgs/nvchad/custom/configs/overrides.lua @@ -23,12 +23,14 @@ M.mason = { -- defaults "lua-language-server", "stylua", + "luacheck", -- web dev "css-lsp", "html-lsp", "prettierd", "eslint-lsp", + "eslint_d", "typescript-language-server", "tailwindcss-language-server", diff --git a/pkgs/nvchad/custom/plugins.lua b/pkgs/nvchad/custom/plugins.lua index f969fbc..e809d30 100644 --- a/pkgs/nvchad/custom/plugins.lua +++ b/pkgs/nvchad/custom/plugins.lua @@ -1,4 +1,4 @@ -local overrides = require "custom.configs.overrides" +local overrides = require("custom.configs.overrides") local plugins = { { @@ -13,6 +13,22 @@ local plugins = { "NvChad/nvterm", opts = overrides.nvterm, }, + -- Need to setup properly + -- { + -- "stevearc/conform.nvim", + -- event = "BufWritePre", + -- config = function() + -- require("custom.configs.conform") + -- end, + -- }, + -- { + -- "mfussenegger/nvim-lint", + -- lazy = true, + -- event = { "BufReadPre", "BufNewFile" }, + -- config = function() + -- require("custom.configs.nvim-lint") + -- end, + -- }, { "Shatur/neovim-session-manager", dependencies = { @@ -30,21 +46,21 @@ local plugins = { "rcarriga/nvim-notify", }, opts = function() - return require "custom.configs.noice" + return require("custom.configs.noice") end, }, { "neovim/nvim-lspconfig", config = function() - require "plugins.configs.lspconfig" - require "custom.configs.lspconfig" + require("plugins.configs.lspconfig") + require("custom.configs.lspconfig") end, }, { "nvimtools/none-ls.nvim", event = "VeryLazy", opts = function() - return require "custom.configs.null-ls" + return require("custom.configs.null-ls") end, }, {