diff --git a/nvim/init.lua b/nvim/init.lua index f9b4270..27165e6 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -2,3 +2,4 @@ require("config.options") require("config.keymaps") require("config.lazy") +require("config.filetypes") diff --git a/nvim/lua/config/filetypes.lua b/nvim/lua/config/filetypes.lua new file mode 100644 index 0000000..78a075b --- /dev/null +++ b/nvim/lua/config/filetypes.lua @@ -0,0 +1,31 @@ +vim.filetype.add({ + filename = { + ["user-dirs.dirs"] = "conf", + + ["gruvbox.conf"] = "kitty", + ["kitty.conf"] = "kitty", + ["ssh.conf"] = "kitty", + + ["dot-zshenv"] = "zsh", + ["dot-zshrc"] = "zsh" + }, + + pattern = { + [".*/git/config"] = "gitconfig" + } +}) + +vim.api.nvim_create_autocmd("Filetype", { + group = vim.api.nvim_create_augroup("setIndent", {}), + pattern = { + "lua", + "css", + "html", + "htmldjango", + "javascript", + "javascriptreact", + "json", + "svelte" + }, + command = "setlocal tabstop=2 softtabstop=2 shiftwidth=2" +}) diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index f2d9cc5..c18453b 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -19,7 +19,7 @@ set("n", "N", "Nzz") set("n", "<c-u>", "<c-u>zz") set("n", "<c-d>", "<c-d>zz") -set("n", "<leader>w", "<c-w>") +set("n", "<leader>w", "<c-w>", { remap = true }) set("n", "<cr>", function() if vim.v.hlsearch == 1 then @@ -34,9 +34,9 @@ vim.api.nvim_create_autocmd("Filetype", { pattern = "lua", group = vim.api.nvim_create_augroup("Execute Lua", { clear = true }), callback = function() - vim.keymap.set("n", "<leader>x", "<cmd>.lua<cr>", { buffer = true }) - vim.keymap.set("x", "<leader>x", ":lua<cr>", { buffer = true }) - vim.keymap.set("n", "<leader><leader>x", "<cmd>%lua<cr>", { buffer = true }) + set("n", "<leader>x", "<cmd>.lua<cr>", { buffer = true }) + set("x", "<leader>x", ":lua<cr>", { buffer = true }) + set("n", "<leader><leader>x", "<cmd>%lua<cr>", { buffer = true }) end, }) @@ -58,4 +58,13 @@ function M.telescope() end) end +function M.harpoon() + set("", "<leader>ha", require("harpoon.mark").add_file) + set("", "<leader>ho", require("harpoon.ui").toggle_quick_menu) + + set("", "<leader>hf", function() require("harpoon.ui").nav_file(1) end) + set("", "<leader>hd", function() require("harpoon.ui").nav_file(2) end) + set("", "<leader>hs", function() require("harpoon.ui").nav_file(2) end) +end + return M diff --git a/nvim/lua/config/lazy.lua b/nvim/lua/config/lazy.lua index b7ef23e..65c6629 100644 --- a/nvim/lua/config/lazy.lua +++ b/nvim/lua/config/lazy.lua @@ -20,22 +20,9 @@ require("lazy").setup({ }, spec = { - { "ellisonleao/gruvbox.nvim", config = function() vim.cmd.colorscheme "gruvbox" end }, + { import = "config.plugins" }, - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = "all", - highlight = { - enable = true - }, - indent = { - enable = true - } - }, - main = "nvim-treesitter.configs", - build = ":TSUpdate", - }, + { "ellisonleao/gruvbox.nvim", config = function() vim.cmd.colorscheme "gruvbox" end }, { "folke/flash.nvim", @@ -46,6 +33,14 @@ require("lazy").setup({ }, }, - { import = "config.plugins" } + { + "abecodes/tabout.nvim", + config = { + ignore_beginning = false + } + }, + + "ThePrimeagen/harpoon", + "fladson/vim-kitty" }, }) diff --git a/nvim/lua/config/plugins/blink.lua b/nvim/lua/config/plugins/blink.lua new file mode 100644 index 0000000..ecb6245 --- /dev/null +++ b/nvim/lua/config/plugins/blink.lua @@ -0,0 +1,13 @@ +return { + "saghen/blink.cmp", + version = "1.*", + opts = { + completion = { + list = { + selection = { preselect = false, auto_insert = false } + }, + documentation = { auto_show = true }, + ghost_text = { enabled = true } + } + } +} diff --git a/nvim/lua/config/plugins/lsp.lua b/nvim/lua/config/plugins/lsp.lua index 0047699..c9dc415 100644 --- a/nvim/lua/config/plugins/lsp.lua +++ b/nvim/lua/config/plugins/lsp.lua @@ -13,23 +13,11 @@ return { } }, config = function() - require("lspconfig").lua_ls.setup {} + local lspconfig = require("lspconfig") - vim.api.nvim_create_autocmd("LspAttach", { - callback = function(args) - local client = vim.lsp.get_client_by_id(args.data.client_id) - if not client then return end - - if client.supports_method("textDocument/formatting") then - vim.api.nvim_create_autocmd("BufWritePre", { - buffer = args.buf, - callback = function() - vim.lsp.buf.format({ bufnr = args.buf, id = client.id }) - end - }) - end - end - }) + lspconfig.lua_ls.setup {} + lspconfig.pylsp.setup {} + lspconfig.emmet_ls.setup{} end } } diff --git a/nvim/lua/config/plugins/none-ls.lua b/nvim/lua/config/plugins/none-ls.lua new file mode 100644 index 0000000..89c298d --- /dev/null +++ b/nvim/lua/config/plugins/none-ls.lua @@ -0,0 +1,12 @@ +return { + "nvimtools/none-ls.nvim", + config = function() + local null_ls = require("null-ls") + + null_ls.setup({ + sources = { + null_ls.builtins.formatting.prettier + } + }) + end +} diff --git a/nvim/lua/config/plugins/treesitter.lua b/nvim/lua/config/plugins/treesitter.lua new file mode 100644 index 0000000..287bd33 --- /dev/null +++ b/nvim/lua/config/plugins/treesitter.lua @@ -0,0 +1,14 @@ +return { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = "all", + highlight = { + enable = true + }, + indent = { + enable = true + } + }, + main = "nvim-treesitter.configs", + build = ":TSUpdate", +}