diff --git a/.luarc.json b/.luarc.json new file mode 100644 index 0000000..1e1765c --- /dev/null +++ b/.luarc.json @@ -0,0 +1,5 @@ +{ + "diagnostics.globals": [ + "vim" + ] +} \ No newline at end of file diff --git a/init.lua b/init.lua index 8d26c18..12ce867 100644 --- a/init.lua +++ b/init.lua @@ -5,7 +5,7 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release + "--branch=stable", lazypath, }) end @@ -13,5 +13,3 @@ vim.opt.rtp:prepend(lazypath) require("vim-options") require("lazy").setup("plugins") - - diff --git a/lazy-lock.json b/lazy-lock.json index 7760d5d..8d2dd19 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -2,10 +2,16 @@ "catppuccin": { "branch": "main", "commit": "aebe43db9cb26e1c70fc5b2fd4158169c405e720" }, "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "9dfcf2036c223920826140f0151d929a43f9eceb" }, + "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "16d1b194376bf1fc2acd89ccb3c29ba8315bfcea" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "f0746bf4f1a21d6e1d2002f671fb9b46d2146de7" }, + "none-ls.nvim": { "branch": "main", "commit": "0d42ba8d506242b2252d2d2885a7f6f4f5b2bcb2" }, "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, + "nvim-lspconfig": { "branch": "master", "commit": "9619e53d3f99f0ca4ea3b88f5d97fce703131820" }, "nvim-treesitter": { "branch": "master", "commit": "a2d6678bb21052013d0dd7cb35dffbac13846c98" }, "nvim-web-devicons": { "branch": "master", "commit": "e2e3475c7bffbafbda19df2be6ffd04f6d1a3e16" }, "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, + "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" } } \ No newline at end of file diff --git a/lua/plugins/catppuccin.lua b/lua/plugins/catppuccin.lua index 7635fc6..d8f8fc4 100644 --- a/lua/plugins/catppuccin.lua +++ b/lua/plugins/catppuccin.lua @@ -1,10 +1,9 @@ return { - "catppuccin/nvim", - name = "catppuccin", - lazy = false, + "catppuccin/nvim", + name = "catppuccin", + lazy = false, priority = 1000, - config = function() - vim.cmd.colorscheme "catppuccin-mocha" - end + config = function() + vim.cmd.colorscheme("catppuccin-mocha") + end, } - diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua new file mode 100644 index 0000000..5e59bc7 --- /dev/null +++ b/lua/plugins/lsp-config.lua @@ -0,0 +1,31 @@ +return { + { + "williamboman/mason.nvim", + config = function() + require("mason").setup() + end, + }, + { + "williamboman/mason-lspconfig.nvim", + config = function() + require("mason-lspconfig").setup({ + ensure_installed = { "lua_ls", "tsserver", "svelte", "tailwindcss", "cssls", "rust_analyzer" }, + }) + end, + }, + { + "neovim/nvim-lspconfig", + config = function() + local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({}) + lspconfig.tsserver.setup({}) + lspconfig.svelte.setup({}) + lspconfig.tailwindcss.setup({}) + lspconfig.cssls.setup({}) + lspconfig.rust_analyzer.setup({}) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, {}) + vim.keymap.set("n", "K", vim.lsp.buf.hover, {}) + vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, {}) + end, + }, +} diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua index 8d04395..7d3ef3b 100644 --- a/lua/plugins/lualine.lua +++ b/lua/plugins/lualine.lua @@ -1,11 +1,11 @@ return { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - config = function () + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() require("lualine").setup({ options = { - theme = "dracula" - } + theme = "dracula", + }, }) - end + end, } diff --git a/lua/plugins/neotree.lua b/lua/plugins/neotree.lua index 4fc7e1a..94e9986 100644 --- a/lua/plugins/neotree.lua +++ b/lua/plugins/neotree.lua @@ -1,9 +1,11 @@ return { - {"nvim-neo-tree/neo-tree.nvim", branch = "v3.x", - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", - "MunifTanjim/nui.nvim", - } - } + { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + }, } diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua new file mode 100644 index 0000000..611a5e0 --- /dev/null +++ b/lua/plugins/none-ls.lua @@ -0,0 +1,22 @@ +return { + "nvimtools/none-ls.nvim", + dependencies = { + "nvimtools/none-ls-extras.nvim", + }, + config = function() + local null_ls = require("null-ls") + null_ls.setup({ + sources = { + require("none-ls.diagnostics.eslint_d"), + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.isort, + null_ls.builtins.formatting.prettier.with({ + extra_filetypes = { "svelte" }, + }), + }, + }) + + vim.keymap.set("n", "gf", vim.lsp.buf.format, {}) + end, +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index fc8a650..70daaf7 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -1,12 +1,27 @@ return { - "nvim-telescope/telescope.nvim", - tag = "0.1.6", - dependencies = { - "vim-lua/plenary.nvim" + { + "nvim-telescope/telescope.nvim", + tag = "0.1.6", + dependencies = { + "vim-lua/plenary.nvim", + }, + config = function() + local builtin = require("telescope.builtin") + vim.keymap.set("n", "", builtin.find_files, {}) + vim.keymap.set("n", "", builtin.live_grep, {}) + end, + }, + { + "nvim-telescope/telescope-ui-select.nvim", + config = function() + require("telescope").setup({ + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown({}), + }, + }, + }) + require("telescope").load_extension("ui-select") + end, }, - config = function() - local builtin = require("telescope.builtin") - vim.keymap.set("n", "", builtin.find_files, {}) - vim.keymap.set("n", "", builtin.live_grep, {}) - end } diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 882fe31..40c585f 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -1,14 +1,15 @@ return { - "nvim-treesitter/nvim-treesitter", + "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() local configs = require("nvim-treesitter.configs") vim.keymap.set("n", "", ":Neotree toggle") configs.setup({ - ensure_installed = {"lua", "javascript", "html", "css", "rust", "typescript", "python"}, + ensure_installed = { "lua", "javascript", "html", "css", "svelte", "rust", "typescript", "python" }, + auto_isntall = { enable = true }, highlight = { enable = true }, indent = { enable = true }, }) - end + end, } diff --git a/lua/vim-options.lua b/lua/vim-options.lua index c8b96b8..2a17120 100644 --- a/lua/vim-options.lua +++ b/lua/vim-options.lua @@ -1,6 +1,4 @@ vim.cmd("set tabstop=4") vim.cmd("set shiftwidth=4") vim.wo.relativenumber = true -vim.g.mapleader = "," - - +vim.g.mapleader = " "