diff --git a/after/plugin/conform-config.lua b/after/plugin/conform-config.lua new file mode 100644 index 00000000..f5557a19 --- /dev/null +++ b/after/plugin/conform-config.lua @@ -0,0 +1,16 @@ +require('conform').setup { + formatters_by_ft = { + lua = { 'stylua' }, + -- Conform will run multiple formatters sequentially + python = { 'isort', 'black' }, + -- Use a sub-list to run only the first available formatter + javascript = { { 'prettierd', 'prettier' } }, + }, +} + +vim.api.nvim_create_autocmd('BufWritePre', { + pattern = '*', + callback = function(args) + require('conform').format { bufnr = args.buf } + end, +}) diff --git a/after/plugin/lsp-config.lua b/after/plugin/lsp-config.lua index 5f485bbc..af64bd57 100644 --- a/after/plugin/lsp-config.lua +++ b/after/plugin/lsp-config.lua @@ -1,64 +1,83 @@ -- [[ Configure LSP ]] -local lsp = require("lsp-zero") +local lsp = require 'lsp-zero' -lsp.preset("recommended") +lsp.preset 'recommended' -lsp.ensure_installed({ - 'gopls', - 'pyright', - 'tsserver', - 'rust_analyzer', -}) +lsp.ensure_installed { + 'gopls', + 'pyright', + 'tsserver', + 'rust_analyzer', +} -- Fix Undefined global 'vim' lsp.nvim_workspace() - -local cmp = require('cmp') +local cmp = require 'cmp' local cmp_select = { behavior = cmp.SelectBehavior.Select } -local cmp_mappings = lsp.defaults.cmp_mappings({ - [''] = cmp.mapping.select_prev_item(cmp_select), - [''] = cmp.mapping.select_next_item(cmp_select), - [''] = cmp.mapping.confirm({ select = true }), - [""] = cmp.mapping.complete(), -}) +local cmp_mappings = lsp.defaults.cmp_mappings { + [''] = cmp.mapping.select_prev_item(cmp_select), + [''] = cmp.mapping.select_next_item(cmp_select), + [''] = cmp.mapping.confirm { select = true }, + [''] = cmp.mapping.complete(), +} cmp_mappings[''] = nil cmp_mappings[''] = nil -lsp.setup_nvim_cmp({ - mapping = cmp_mappings -}) +lsp.setup_nvim_cmp { + mapping = cmp_mappings, +} -lsp.set_preferences({ - suggest_lsp_servers = false, - sign_icons = { - error = '⛔️', - warn = '⚠️', - hint = '🧐', - info = 'I' - } -}) +lsp.set_preferences { + suggest_lsp_servers = false, + sign_icons = { + error = '⛔️', + warn = '⚠️', + hint = '🧐', + info = 'I', + }, +} lsp.on_attach(function(_, bufnr) - local opts = { buffer = bufnr, remap = false } + local opts = { buffer = bufnr, remap = false } - vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) - vim.keymap.set("n", "gD", function() vim.lsp.buf.declaration() end, opts) - vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) - vim.keymap.set("n", "vws", function() vim.lsp.buf.workspace_symbol() end, opts) - vim.keymap.set("n", "vd", function() vim.diagnostic.open_float() end, opts) - vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, opts) - vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) - vim.keymap.set("n", "ca", function() vim.lsp.buf.code_action() end, opts) - vim.keymap.set("n", "gr", require('telescope.builtin').lsp_references, opts) - vim.keymap.set("n", "rn", function() vim.lsp.buf.rename() end, opts) - vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) - vim.keymap.set("n", "lf", vim.lsp.buf.format, { desc = 'Format Buffer' }) + vim.keymap.set('n', 'gd', function() + vim.lsp.buf.definition() + end, opts) + vim.keymap.set('n', 'gD', function() + vim.lsp.buf.declaration() + end, opts) + vim.keymap.set('n', 'K', function() + vim.lsp.buf.hover() + end, opts) + vim.keymap.set('n', 'vws', function() + vim.lsp.buf.workspace_symbol() + end, opts) + vim.keymap.set('n', 'vd', function() + vim.diagnostic.open_float() + end, opts) + vim.keymap.set('n', '[d', function() + vim.diagnostic.goto_next() + end, opts) + vim.keymap.set('n', ']d', function() + vim.diagnostic.goto_prev() + end, opts) + vim.keymap.set('n', 'ca', function() + vim.lsp.buf.code_action() + end, opts) + vim.keymap.set('n', 'gr', require('telescope.builtin').lsp_references, opts) + vim.keymap.set('n', 'rn', function() + vim.lsp.buf.rename() + end, opts) + --[[ vim.keymap.set("i", "", function() vim.lsp.buf.signature_help() end, opts) ]] + vim.keymap.set('n', 'lf', function() + require('conform').format() + end, { desc = 'Format Buffer' }) end) lsp.setup() -vim.diagnostic.config({ - virtual_text = true -}) +vim.diagnostic.config { + virtual_text = true, +} diff --git a/init.lua b/init.lua index 09ee2987..86fb4e34 100644 --- a/init.lua +++ b/init.lua @@ -3,18 +3,18 @@ vim.g.maplocalleader = ' ' local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' if not vim.loop.fs_stat(lazypath) then - vim.fn.system { - 'git', - 'clone', - '--filter=blob:none', - 'https://github.com/folke/lazy.nvim.git', - '--branch=stable', -- latest stable release - lazypath, - } + vim.fn.system { + 'git', + 'clone', + '--filter=blob:none', + 'https://github.com/folke/lazy.nvim.git', + '--branch=stable', -- latest stable release + lazypath, + } end vim.opt.rtp:prepend(lazypath) -require('lazy').setup('plugins') -require('thrillee') +require('lazy').setup 'plugins' +require 'thrillee' --[[ require('kickstart.plugins.autoformat') require('kickstart.plugins.debug') ]] diff --git a/lazy-lock.json b/lazy-lock.json index 53a3e7aa..8a696e67 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,38 +1,39 @@ { "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, - "LuaSnip": { "branch": "master", "commit": "2c3a3a3e4fb503bf39efb61290ecfa8aae95f5eb" }, + "LuaSnip": { "branch": "master", "commit": "0df29db3543837f8b41597f2640397c5ec792b7b" }, "alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "conform.nvim": { "branch": "master", "commit": "1281e26948fc06994e0e0cdcaafdd9bbd28929e7" }, "friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" }, - "gitsigns.nvim": { "branch": "main", "commit": "ff01d34daaed72f271a8ffa088a7e839a60c640f" }, - "lazy.nvim": { "branch": "main", "commit": "6b6f0a451200bb6abde85978c577c73ea1577758" }, + "gitsigns.nvim": { "branch": "main", "commit": "5a9a6ac29a7805c4783cda21b80a1e361964b3f2" }, + "lazy.nvim": { "branch": "main", "commit": "7613ab2abb1bd99e039ae02030bc2c48b7626925" }, "lazygit.nvim": { "branch": "main", "commit": "de35012036d43bca03628d40d083f7c02a4cda3f" }, "lsp-zero.nvim": { "branch": "v1.x", "commit": "60b0e84f3793f7e8bcc9ec52f9c239fd497b2cd2" }, - "lualine.nvim": { "branch": "master", "commit": "45e27ca739c7be6c49e5496d14fcf45a303c3a63" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "e2705063f395b44f676cd26596a11007a2cbd3bd" }, - "mason.nvim": { "branch": "main", "commit": "d66c60e17dd6fd8165194b1d14d21f7eb2c1697a" }, + "lualine.nvim": { "branch": "master", "commit": "1a3f6bba410aff5a51bf8c84287aaa3a8ba30d0d" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "e7b64c11035aa924f87385b72145e0ccf68a7e0a" }, + "mason.nvim": { "branch": "main", "commit": "cd7835b15f5a4204fc37e0aa739347472121a54c" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "71f1841ba6c652908678cece623f52c1fea8a6cd" }, - "nui.nvim": { "branch": "main", "commit": "c8de23342caf8d50b15d6b28368d36a56a69d76f" }, - "nvim-autopairs": { "branch": "master", "commit": "de4f7138a68d5d5063170f2182fd27faf06b0b54" }, + "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" }, + "nvim-autopairs": { "branch": "master", "commit": "f6c71641f6f183427a651c0ce4ba3fb89404fa9e" }, "nvim-cmp": { "branch": "main", "commit": "5dce1b778b85c717f6614e3f4da45e9f19f54435" }, - "nvim-lspconfig": { "branch": "master", "commit": "2b361e043810d5587d9af0787f8ce40da92ec5e9" }, - "nvim-treesitter": { "branch": "master", "commit": "10bfa4826f2235c600c073a82e0d78718aa7240e" }, - "nvim-treesitter-context": { "branch": "master", "commit": "2095f231dfe796d228eedea96fdaa31f2e343fb2" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "4724694bc03ce1148860a46d9d77c3664d8188ab" }, + "nvim-lspconfig": { "branch": "master", "commit": "e49b1e90c1781ce372013de3fa93a91ea29fc34a" }, + "nvim-treesitter": { "branch": "master", "commit": "9c4fc86b67c1d68141cef57846d24cbee9b74fb0" }, + "nvim-treesitter-context": { "branch": "master", "commit": "82c695951612911421e8e21068ba5fc2c2e2c212" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "78c49ca7d2f7ccba2115c11422c037713c978ad1" }, "nvim-ts-autotag": { "branch": "main", "commit": "6be1192965df35f94b8ea6d323354f7dc7a557e4" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "7241635869b7a8115893ffa67bab3907756caf4f" }, - "nvim-web-devicons": { "branch": "master", "commit": "45d0237c427baba8cd05e0ab26d30e2ee58c2c82" }, - "onedark.nvim": { "branch": "master", "commit": "dac8c39812dae025255c9069a260e1f69d967927" }, - "plenary.nvim": { "branch": "master", "commit": "9ce85b0f7dcfe5358c0be937ad23e456907d410b" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "92e688f013c69f90c9bbd596019ec10235bc51de" }, + "nvim-web-devicons": { "branch": "master", "commit": "3af745113ea537f58c4b1573b64a429fefad9e07" }, + "onedark.nvim": { "branch": "master", "commit": "826fb77e9ca92d3c0f3d937328663d4a6dc7fee1" }, + "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, - "telescope.nvim": { "branch": "0.1.x", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" }, + "telescope.nvim": { "branch": "0.1.x", "commit": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a" }, "undotree": { "branch": "master", "commit": "0e11ba7325efbbb3f3bebe06213afa3e7ec75131" }, - "vim-fugitive": { "branch": "master", "commit": "99db68d9b3304580bd383da7aaee05c7a954a344" }, + "vim-fugitive": { "branch": "master", "commit": "cbe9dfa162c178946afa689dd3f42d4ea8bf89c1" }, "vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" }, "vim-sleuth": { "branch": "master", "commit": "1cc4557420f215d02c4d2645a748a816c220e99b" }, - "which-key.nvim": { "branch": "main", "commit": "7ccf476ebe0445a741b64e36c78a682c1c6118b7" } + "which-key.nvim": { "branch": "main", "commit": "6962dae3565369363b59dd51fb206051555fcb4d" } } \ No newline at end of file diff --git a/lua/plugins/conform.lua b/lua/plugins/conform.lua new file mode 100644 index 00000000..6b816b8d --- /dev/null +++ b/lua/plugins/conform.lua @@ -0,0 +1,4 @@ +return { + 'stevearc/conform.nvim', + opts = {}, +}