dots

Mika's dotfiles
git clone git://popovic.xyz/dots.git/
Log | Files | Refs | README

commit 3c89e69cf5783bd754d3e6385133df5ac9de3745
parent 8aba7472abe5981d07a034e89f47538d7ef266ee
Author: Milutin Popovic <milutin@popovic.xyz>
Date:   Fri, 13 Mar 2026 23:39:13 +0000

add rust formating

Diffstat:
M.config/nvim/lua/plugins/lsp.lua | 312++++++++++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 157 insertions(+), 155 deletions(-)

diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua @@ -1,163 +1,165 @@ return { - "neovim/nvim-lspconfig", - dependencies = { - "stevearc/conform.nvim", - "williamboman/mason.nvim", - "williamboman/mason-lspconfig.nvim", - "j-hui/fidget.nvim", - "hrsh7th/nvim-cmp", - "hrsh7th/cmp-nvim-lsp", - }, - config = function () - map = vim.keymap.set - vim.opt.signcolumn = 'yes' - vim.lsp.inlay_hint.enable(true) + "neovim/nvim-lspconfig", + dependencies = { + "stevearc/conform.nvim", + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "j-hui/fidget.nvim", + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lsp", + }, + config = function() + map = vim.keymap.set + vim.opt.signcolumn = "yes" + vim.lsp.inlay_hint.enable(true) - local lspconfig_defaults = require('lspconfig').util.default_config - require("conform").setup({ - formatters_by_ft = { - javascript = { "prettier" }, - javascriptreact = { "prettier" }, - typescript = { "prettier" }, - typescriptreact = { "prettier" }, - vue = { "prettier" }, - css = { "prettier" }, - scss = { "prettier" }, - less = { "prettier" }, - html = { "prettier" }, - json = { "prettier" }, - jsonc = { "prettier" }, - yaml = { "prettier" }, - markdown = { "prettier" }, - graphql = { "prettier" }, - svelte = { "prettier" }, - astro = { "prettier" }, - }, - format_on_save = { - timeout_ms = 500, - lsp_fallback = true, - }, - }) + local lspconfig_defaults = require("lspconfig").util.default_config + require("conform").setup({ + formatters_by_ft = { + javascript = { "prettier" }, + javascriptreact = { "prettier" }, + typescript = { "prettier" }, + typescriptreact = { "prettier" }, + vue = { "prettier" }, + css = { "prettier" }, + scss = { "prettier" }, + less = { "prettier" }, + html = { "prettier" }, + json = { "prettier" }, + jsonc = { "prettier" }, + yaml = { "prettier" }, + markdown = { "prettier" }, + graphql = { "prettier" }, + svelte = { "prettier" }, + astro = { "prettier" }, + rust = { "rustfmt" }, + }, + format_on_save = { + timeout_ms = 500, + lsp_fallback = true, + }, + }) - local cmp = require("cmp") - local cmp_lsp = require("cmp_nvim_lsp") - local capabilities = vim.tbl_deep_extend( - 'force', - lspconfig_defaults.capabilities, - cmp_lsp.default_capabilities() - ) - lspconfig_defaults.capabilities = capabilities + local cmp = require("cmp") + local cmp_lsp = require("cmp_nvim_lsp") + local capabilities = + vim.tbl_deep_extend("force", lspconfig_defaults.capabilities, cmp_lsp.default_capabilities()) + lspconfig_defaults.capabilities = capabilities - vim.api.nvim_create_autocmd('LspAttach', { - desc = 'LSP actions', - callback = function(event) - local opts = {buffer = event.buf} + vim.api.nvim_create_autocmd("LspAttach", { + desc = "LSP actions", + callback = function(event) + local opts = { buffer = event.buf } - map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', opts) - map('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>', opts) - map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', opts) - map('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>', opts) - map('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>', opts) - map('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', opts) - map('n', 'gs', '<cmd>lua vim.lsp.buf.signature_help()<cr>', opts) - map('n', 'gq', function() require("conform").format({ async = true, lsp_fallback = true }) end, opts) - map('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>', opts) - map({'n', 'x'}, '<F3>', '<cmd>lua vim.lsp.buf.format({async = true})<cr>', opts) - map('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>', opts) - end, - }) + map("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", opts) + map("n", "gd", "<cmd>lua vim.lsp.buf.definition()<cr>", opts) + map("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<cr>", opts) + map("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<cr>", opts) + map("n", "go", "<cmd>lua vim.lsp.buf.type_definition()<cr>", opts) + map("n", "gr", "<cmd>lua vim.lsp.buf.references()<cr>", opts) + map("n", "gs", "<cmd>lua vim.lsp.buf.signature_help()<cr>", opts) + map("n", "gq", function() + require("conform").format({ async = true, lsp_fallback = true }) + end, opts) + map("n", "<F2>", "<cmd>lua vim.lsp.buf.rename()<cr>", opts) + map({ "n", "x" }, "<F3>", "<cmd>lua vim.lsp.buf.format({async = true})<cr>", opts) + map("n", "<F4>", "<cmd>lua vim.lsp.buf.code_action()<cr>", opts) + end, + }) + require("fidget").setup({}) + require("mason").setup() + require("mason-lspconfig").setup({ + handlers = { + function(server_name) + require("lspconfig")[server_name].setup({ + capabilities = capabilities, + }) + end, + ["eslint"] = function() + local lspconfig = require("lspconfig") + lspconfig.eslint.setup({ + cmd = { "vscode-eslint-language-server", "--stdio" }, + filetypes = { + "javascript", + "javascriptreact", + "javascript.jsx", + "typescript", + "typescriptreact", + "typescript.tsx", + "vue", + "svelte", + "astro", + "htmlangular", + }, + on_attach = function(client, bufnr) + vim.api.nvim_buf_set_option(bufnr, "formatexpr", "v:lua.vim.lsp.formatexpr()") + end, + capabilities = capabilities, + -- ESLint will automatically look for config files in the project + settings = { + workingDirectory = { mode = "auto" }, + }, + }) + end, + ["bashls"] = function() + local lspconfig = require("lspconfig") + lspconfig.bashls.setup({ + cmd = { "bash-language-server", "start" }, + filetypes = { "zsh", "bash", "sh" }, + capabilities = capabilities, + }) + end, + ["tailwindcss"] = function() + local lspconfig = require("lspconfig") + lspconfig.tailwindcss.setup({ + includeLangauges = { + javascript = "js", + html = "html", + typescript = "ts", + typescriptreact = "tsx", + javascriptreact = "jsx", + }, + }) + end, + ["lua_ls"] = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({ + on_init = function(client) + if client.workspace_folders then + local path = client.workspace_folders[1].name + if + path ~= vim.fn.stdpath("config") + and ( + vim.uv.fs_stat(path .. "/.luarc.json") or vim.uv.fs_stat( + path .. "/.luarc.jsonc" + ) + ) + then + return + end + end - require("fidget").setup({}) - require("mason").setup() - require("mason-lspconfig").setup({ - handlers = { - function(server_name) - require("lspconfig")[server_name].setup { - capabilities = capabilities - } - end, - ['eslint'] = function() - local lspconfig = require("lspconfig") - lspconfig.eslint.setup({ - cmd = { 'vscode-eslint-language-server', '--stdio' }, - filetypes = { - 'javascript', - 'javascriptreact', - 'javascript.jsx', - 'typescript', - 'typescriptreact', - 'typescript.tsx', - 'vue', - 'svelte', - 'astro', - 'htmlangular', - }, - on_attach = function(client, bufnr) - vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') - end, - capabilities = capabilities, - -- ESLint will automatically look for config files in the project - settings = { - workingDirectory = { mode = "auto" }, - }, - }); - end, - ['bashls'] = function() - local lspconfig = require("lspconfig") - lspconfig.bashls.setup { - cmd = {'bash-language-server', 'start'}, - filetypes = {'zsh', 'bash', 'sh'}, - capabilities = capabilities - } - end, - ['tailwindcss'] = function() - local lspconfig = require("lspconfig") - lspconfig.tailwindcss.setup({ - includeLangauges = { - javascript = 'js', - html = 'html', - typescript = 'ts', - typescriptreact = 'tsx', - javascriptreact = 'jsx', - } - }) - end, - ["lua_ls"] = function() - local lspconfig = require("lspconfig") - lspconfig.lua_ls.setup({ - on_init = function(client) - if client.workspace_folders then - local path = client.workspace_folders[1].name - if - path ~= vim.fn.stdpath('config') - and (vim.uv.fs_stat(path .. '/.luarc.json') or vim.uv.fs_stat(path .. '/.luarc.jsonc')) - then - return - end - end - - client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, { - runtime = { - version = 'LuaJIT', - path = { - 'lua/?.lua', - 'lua/?/init.lua', - - }, - }, - workspace = { - checkThirdParty = false, - library = vim.api.nvim_get_runtime_file("", true) - } - }) - end, - settings = { - Lua = {} - } - }) - end, - } - }) - end + client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, { + runtime = { + version = "LuaJIT", + path = { + "lua/?.lua", + "lua/?/init.lua", + }, + }, + workspace = { + checkThirdParty = false, + library = vim.api.nvim_get_runtime_file("", true), + }, + }) + end, + settings = { + Lua = {}, + }, + }) + end, + }, + }) + end, }