diff --git a/README.md b/README.md new file mode 100644 index 0000000..9f303f3 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# My init.lua + +and not yours. ;) diff --git a/lazy-lock.json b/lazy-lock.json index e2c9330..dd51181 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,27 +1,29 @@ { - "LuaSnip": { "branch": "master", "commit": "825a61bad1d60d917a7962d73cf3c683f4e0407e" }, - "catppuccin": { "branch": "main", "commit": "aebe43db9cb26e1c70fc5b2fd4158169c405e720" }, + "LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" }, + "catppuccin": { "branch": "main", "commit": "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "fidget.nvim": { "branch": "main", "commit": "1ba38e4cbb24683973e00c2e36f53ae64da38ef5" }, - "friendly-snippets": { "branch": "main", "commit": "ea068f1becd91bcd4591fceb6420d4335e2e14d3" }, + "conform.nvim": { "branch": "master", "commit": "f3b930db4964d60e255c8f9e37b7f2218dfc08cb" }, + "fidget.nvim": { "branch": "main", "commit": "ef99df04a1c53a453602421bc0f756997edc8289" }, + "friendly-snippets": { "branch": "main", "commit": "d0610077b6129cf9f7f78afbe3a1425d60f6e2f1" }, "harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" }, - "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, - "lazy.nvim": { "branch": "main", "commit": "bef521ac89c8d423f9d092e37b58e8af0c099309" }, - "lualine.nvim": { "branch": "master", "commit": "b5e8bb642138f787a2c1c5aedc2a78cb2cebbd67" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "9dfcf2036c223920826140f0151d929a43f9eceb" }, - "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, - "mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" }, - "none-ls.nvim": { "branch": "main", "commit": "dca7ddec321a102ec9e792b1b29193702aff5fbb" }, - "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, - "nvim-lspconfig": { "branch": "master", "commit": "96e5711040df23583591391ce49e556b8cd248d8" }, - "nvim-treesitter": { "branch": "master", "commit": "1b050206e490a4146cdf25c7b38969c1711b5620" }, - "nvim-web-devicons": { "branch": "master", "commit": "3ee60deaa539360518eaab93a6c701fe9f4d82ef" }, - "oil.nvim": { "branch": "master", "commit": "e462a3446505185adf063566f5007771b69027a1" }, - "plenary": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "telescope.nvim": { "branch": "master", "commit": "d26b666b45e5dde23332e4bde1227677f2d92e31" } + "indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" }, + "lazy.nvim": { "branch": "main", "commit": "eab487c2520f0fe9e54eb5e3ea0606e20512492e" }, + "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, + "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, + "mini.indentscope": { "branch": "main", "commit": "f0d7faa064c892b96997810afcddfadc3f2a15b3" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-lspconfig": { "branch": "master", "commit": "710a8fa7379db32199545f30ea01dd8446b9302f" }, + "nvim-treesitter": { "branch": "master", "commit": "979beffc1a86e7ba19bd6535c0370d8e1aaaad3c" }, + "nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" }, + "oil.nvim": { "branch": "master", "commit": "2cb39e838e9dcd8b374f09a3a87a2e5ec9d372f6" }, + "plenary": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, + "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, + "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, + "vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" } } \ No newline at end of file diff --git a/lua/itsigo/init.lua b/lua/itsigo/init.lua index cecc078..fa2e526 100644 --- a/lua/itsigo/init.lua +++ b/lua/itsigo/init.lua @@ -2,19 +2,14 @@ require("itsigo.remap") require("itsigo.set") require("itsigo.lazy") +vim.filetype.add({ extension = { templ = "templ" } }) + local autocmd = vim.api.nvim_create_autocmd -function R(name) - require("plenary.reload").reload_module(name) -end - -autocmd({"BufWritePre"}, { - pattern = "*", - command = [[%s/\s\+$//e]], -}) +autocmd({ "BufWritePre" }, { pattern = { "*.templ" }, callback = vim.lsp.buf.format }) autocmd('LspAttach', { - callback = function (e) + callback = function(e) local opts = { buffer = e.buf } vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts) vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, opts) diff --git a/lua/itsigo/plugins/catppuccin.lua b/lua/itsigo/plugins/catppuccin.lua index 558c255..01fcd0b 100644 --- a/lua/itsigo/plugins/catppuccin.lua +++ b/lua/itsigo/plugins/catppuccin.lua @@ -1,8 +1,17 @@ return { - "catppuccin/nvim", - name = "catppuccin", - priority = 999, - config = function() - vim.cmd.colorscheme "catppuccin-macchiato" - end, + "catppuccin/nvim", + name = "catppuccin", + priority = 999, + config = function() + local cat = require("catppuccin") + cat.setup({ + integrations = { + harpoon = true, + mason = true, + cmp = true, + telescope = { enabled = true }, + } + }) + vim.cmd.colorscheme "catppuccin-macchiato" + end, } diff --git a/lua/itsigo/plugins/conform.lua b/lua/itsigo/plugins/conform.lua new file mode 100644 index 0000000..b9ae3a8 --- /dev/null +++ b/lua/itsigo/plugins/conform.lua @@ -0,0 +1,39 @@ +return { + "stevearc/conform.nvim", + dependencies = { "mason.nvim" }, + event = { "BufWritePre" }, + cmd = { "ConformInfo" }, + keys = { + { + -- Customize or remove this keymap to your liking + "f", + function() + require("conform").format({ async = true, lsp_fallback = true }) + end, + mode = "", + desc = "Format buffer", + }, + }, + -- Everything in opts will be passed to setup() + opts = { + -- Define your formatters + formatters_by_ft = { + lua = { "stylua" }, + javascript = { "tsserver" }, + go = { { "gofumts", "goimports" } }, + templ = { "templ" }, + }, + -- Set up format-on-save + format_on_save = { timeout_ms = 500, lsp_fallback = true }, + -- Customize formatters + formatters = { + shfmt = { + prepend_args = { "-i", "2" }, + }, + }, + }, + init = function() + -- If you want the formatexpr, here is the place to set it + vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" + end, +} diff --git a/lua/itsigo/plugins/lsp.lua b/lua/itsigo/plugins/lsp.lua index f3915ce..12430ae 100644 --- a/lua/itsigo/plugins/lsp.lua +++ b/lua/itsigo/plugins/lsp.lua @@ -11,7 +11,6 @@ return { "L3MON4D3/LuaSnip", "saadparwaiz1/cmp_luasnip", "j-hui/fidget.nvim", - "nvimtools/none-ls.nvim", }, config = function() @@ -29,12 +28,11 @@ return { require("mason-lspconfig").setup({ ensure_installed = { "lua_ls", - -- "rust_analyzer", + "rust_analyzer", "gopls", }, handlers = { function(server_name) -- default handler (optional) - require("lspconfig")[server_name].setup { capabilities = capabilities } @@ -54,6 +52,23 @@ return { } } end, + + ["rust_analyzer"] = function() + local lspconfig = require("lspconfig") + local util = require("lspconfig/util") + lspconfig.rust_analyzer.setup { + filetypes = { "rust" }, + root_dir = util.root_pattern("Cargo.toml"), + opts = { + inlay_hints = { enabled = true }, + }, + settings = { + ['rust-analyzer'] = { + cargo = { allFeatures = true, }, + }, + }, + } + end } }) @@ -71,23 +86,23 @@ return { [''] = cmp.mapping.confirm({ select = true }), [""] = cmp.mapping.complete(), - [""] = cmp.mapping(function(fallback) - --if cmp.visible() then - -- cmp.select_next_item() - if luasnip.locally_jumpable(1) then - luasnip.jump(1) - else - fallback() - end - end, { "i", "s"}), + [""] = cmp.mapping(function(fallback) + --if cmp.visible() then + -- cmp.select_next_item() + if luasnip.locally_jumpable(1) then + luasnip.jump(1) + else + fallback() + end + end, { "i", "s" }), }), sources = cmp.config.sources({ { name = 'luasnip' }, -- For luasnip users. { name = 'nvim_lsp' }, }, { - { name = 'buffer' }, - }) + { name = 'buffer' }, + }) }) vim.diagnostic.config({ @@ -101,30 +116,5 @@ return { prefix = "", }, }) - - local null_ls = require("null-ls") - local autogroup = vim.api.nvim_create_augroup("LspFormatting", {}) - - null_ls.setup({ - sources = { - null_ls.builtins.formatting.gofumpt, - null_ls.builtins.formatting.goimports, - }, - on_attach = function (client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ - group = autogroup, - buffer = bufnr, - }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = autogroup, - buffer = bufnr, - callback = function () - vim.lsp.buf.format({ bufnr = bufnr }) - end, - }) - end - end, - }) end } diff --git a/lua/itsigo/plugins/lualine.lua b/lua/itsigo/plugins/lualine.lua index d101931..56e9b1f 100644 --- a/lua/itsigo/plugins/lualine.lua +++ b/lua/itsigo/plugins/lualine.lua @@ -1,6 +1,12 @@ return { - "nvim-lualine/lualine.nvim", - dependencies = { 'nvim-tree/nvim-web-devicons' }, - opts = { - }, + "nvim-lualine/lualine.nvim", + dependencies = { 'nvim-tree/nvim-web-devicons' }, + opts = function() + require('lualine').setup { + options = { + theme = "catppuccin" + }, + extensions = { 'oil', 'mason', 'lazy' } + } + end } diff --git a/lua/itsigo/plugins/markdown.lua b/lua/itsigo/plugins/markdown.lua new file mode 100644 index 0000000..7d83606 --- /dev/null +++ b/lua/itsigo/plugins/markdown.lua @@ -0,0 +1,6 @@ +return { + "iamcco/markdown-preview.nvim", + cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" }, + ft = { "markdown" }, + build = function() vim.fn["mkdp#util#install"]() end, +} diff --git a/lua/itsigo/plugins/treesitter.lua b/lua/itsigo/plugins/treesitter.lua index bf89623..b6802f8 100644 --- a/lua/itsigo/plugins/treesitter.lua +++ b/lua/itsigo/plugins/treesitter.lua @@ -1,15 +1,15 @@ return { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - config = function () - local configs = require("nvim-treesitter.configs") + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + config = function () + local configs = require("nvim-treesitter.configs") - configs.setup({ - ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html" }, - sync_install = false, - auto_install = true, - highlight = { enable = true }, - indent = { enable = true }, - }) - end + configs.setup({ + ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html", "markdown", "markdown_inline" }, + sync_install = false, + auto_install = true, + highlight = { enable = true }, + indent = { enable = true }, + }) + end }