Files
nvim/init.lua
T
jannikdonker 36d84be18a fixes
treesitter fix
added lightbulb for code actions
added keybind for code action and renaming
2025-09-16 08:36:05 +02:00

103 lines
2.7 KiB
Lua

-- 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", "<leader>gf", vim.lsp.buf.format)
vim.keymap.set("n", "<C-f>", ":Pick files<CR>")
vim.keymap.set("n", "<C-g>", ":Pick grep_live<CR>")
vim.keymap.set("n", "<C-h>", ":Pick help<CR>")
vim.keymap.set("n", "<C-e>", ":Oil<CR>")
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, { desc = "Code Action" })
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "Rename symbol" })
vim.keymap.set("n", "<leader>dg", function()
vim.diagnostic.setqflist()
vim.cmd("copen")
end, { desc = "Show diagnostics in quickfix list" })
vim.keymap.set("n", "<leader>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,
})