-- VIM OPTIONS START -- local vim = vim vim.o.number = true vim.o.relativenumber = true vim.o.tabstop = 4 vim.o.shiftwidth = 4 vim.o.expandtab = true vim.o.signcolumn = "yes" vim.o.swapfile = false vim.g.mapleader = " " vim.o.winborder = "single" -- VIM OPTIONS END -- -- PLUGINS START -- vim.pack.add({ { src = "https://github.com/ellisonleao/gruvbox.nvim" }, { src = "https://github.com/stevearc/oil.nvim" }, { src = "https://github.com/echasnovski/mini.pick" }, { src = "https://github.com/neovim/nvim-lspconfig" }, { src = "https://github.com/nvim-treesitter/nvim-treesitter" }, { src = "https://github.com/Saghen/blink.cmp", version = "v1.6.0", }, { src = "https://github.com/mason-org/mason.nvim" }, { src = "https://github.com/dimitry-ishenko-neovim/lualine-nvim" }, { src = "https://github.com/chomosuke/typst-preview.nvim" }, { src = "https://github.com/kosayoda/nvim-lightbulb" }, }) vim.cmd("colorscheme gruvbox") require("oil").setup() require("mini.pick").setup() require("blink.cmp").setup() require("nvim-treesitter.configs").setup({ auto_install = true, highlight = { enable = true }, indent = { enable = true }, }) require("mason").setup() require("lualine").setup { options = { theme = "gruvbox_dark", } } require("typst-preview").setup() require("nvim-lightbulb").setup({ autocmd = { enabled = true } }) -- PLUGINS END -- -- LSP START -- vim.lsp.enable({ "lua_ls", "ts_ls", "svelte", "tailwindcss", "bashls", "rust_analyzer", "clangd", "clang-format", "taplo", "sourcekit", "lemminx", "tinymist" }) vim.lsp.config["tinymist"] = { cmd = { "tinymist" }, filetypes = { "typst" }, settings = { formatterMode = "typstyle", }, } -- LSP END -- -- KEYMAP START -- vim.keymap.set("n", "gf", vim.lsp.buf.format) vim.keymap.set("n", "", ":Pick files") vim.keymap.set("n", "", ":Pick grep_live") vim.keymap.set("n", "", ":Pick help") vim.keymap.set("n", "", ":Oil") vim.keymap.set("n", "ca", vim.lsp.buf.code_action, { desc = "Code Action" }) vim.keymap.set("n", "rn", vim.lsp.buf.rename, { desc = "Rename symbol" }) vim.keymap.set("n", "dg", function() vim.diagnostic.setqflist() vim.cmd("copen") end, { desc = "Show diagnostics in quickfix list" }) vim.keymap.set("n", "qf>", function() local qf_win = vim.fn.getwininfo(vim.fn.getqflist({ winid = 0 }).winid) if not qf_win or #qf_win == 0 then vim.cmd("copen") else vim.cmd("cclose") end end, { desc = "Toggle quickfix list" }) -- KEYMAP END -- vim.diagnostic.config({ virtual_text = { prefix = "●", spacing = 2, source = "if_many", }, severity_sort = true, })