-- Tab vim.opt.tabstop = 2 -- number of visual spaces per TAB vim.opt.softtabstop = 2 -- number of spacesin tab when editing vim.opt.shiftwidth = 2 -- insert 4 spaces on a tab vim.opt.expandtab = true -- tabs are spaces, mainly because of python -- UI config vim.opt.number = true -- show absolute number vim.opt.relativenumber = true -- add numbers to each line on the left side vim.opt.splitbelow = true -- open new vertical split bottom vim.opt.splitright = true -- open new horizontal splits right -- vim.opt.termguicolors = true -- enabl 24-bit RGB color in the TUI vim.opt.showmode = false -- we are experienced, wo don't need the "-- INSERT --" mode hint -- Searching vim.opt.incsearch = true -- search as characters are entered vim.opt.hlsearch = false -- do not highlight matches vim.opt.ignorecase = true -- ignore case in searches by default vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered vim.cmd("set nowrap") -- -- Keybinds vim.keymap.set("n", "", "h", opts) vim.keymap.set("n", "", "j", opts) vim.keymap.set("n", "", "k", opts) vim.keymap.set("n", "", "l", opts) -- Resize with arrows -- delta: 2 lines vim.keymap.set("n", "", ":resize -2", opts) vim.keymap.set("n", "", ":resize +2", opts) vim.keymap.set("n", "", ":vertical resize -2", opts) vim.keymap.set("n", "", ":vertical resize +2", opts) vim.keymap.set("i", "jk", "", opts) vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) -- jump to definition vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) -- code actions vim.keymap.set("n", "ca", function() require("tiny-code-action").code_action() end, { noremap = true, silent = true }) -- Lazy require("config.lazy") require("catppuccin").setup({}) vim.cmd.colorscheme("catppuccin") -- css colors vim.opt.termguicolors = true require("nvim-highlight-colors").setup({}) -- Plugin setups require("lualine").setup() require("dapui").setup() require("ibl").setup() require("telescope").load_extension("flutter") require("toggleterm").setup({}) require("mini.animate").setup() require('nvim-autopairs').enable() vim.o.showtabline = 2 require("tabby").setup({ preset = "tab_only" }) require("tiny-inline-diagnostic").setup({}) -- conform (code formatter) require("conform").setup({}) -- flutter require("flutter-tools").setup({}) -- GO -- require("go").setup() ------------- -- Debugger local dap, dapui = require("dap"), require("dapui") dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end dap.listeners.before.event_terminated.dapui_config = function() dapui.close() end dap.listeners.before.event_exited.dapui_config = function() dapui.close() end -- c und rust -- dap.adapters.lldb = { -- type = 'executable', -- command = 'lldb', -- adjust as needed, must be absolute path -- name = 'lldb' -- } -- dap.configurations.c = dap.configurations.cpp -- dap.configurations.rust = dap.configurations.cpp dap.adapters.gdb = { type = "executable", command = "gdb", args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, } dap.configurations.cpp = dap.configurations.gdb dap.configurations.rust = dap.configurations.gdb -------------------------------------------- local builtin = require("telescope.builtin") local conform = require("conform") -- Love binds vim.keymap.set("n", "lr", ":LoveRun", { desc = "Love run" }) -- Telescope binds vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) vim.keymap.set("n", "fb", ":Telescope file_browser", { desc = "Telescope file_browser" }) vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) vim.keymap.set("n", "fl", ": Telescope flutter commands", { desc = "Open Telescope flutter" }) vim.keymap.set("n", "fl", ":Telescope flutter commands", { desc = "Open Telescope flutter" }) -- Dap binds vim.keymap.set("n", "do", dapui.open, { desc = "Open debug overlay" }) vim.keymap.set("n", "dc", dapui.close, { desc = "Close debug overlay" }) vim.keymap.set("n", "", dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) vim.keymap.set("n", "", dap.continue, { desc = "dap Continue" }) vim.keymap.set("n", "", dap.step_over, { desc = "dap step over" }) vim.keymap.set("n", "", dap.step_into, { desc = "dap step into" }) -- sudawrite vim.keymap.set("n", "sw", ":SudaWrite", { desc = "Write as sudo" }) -- conform vim.keymap.set("n", "cf", conform.format, { desc = "format code" }) -- toggleterm binds vim.keymap.set("n", "tf", ":ToggleTerm direction=float ", { desc = "Open floating terminal" }) vim.keymap.set("n", "tt", ":ToggleTerm direction=tab size=50 ", { desc = "Open terminal in new tab" }) vim.keymap.set("n", "tv", ":ToggleTerm direction=vertical ", { desc = "Open terminal vertical" }) vim.keymap.set("n", "ts", ":ToggleTerm direction=vertical ", { desc = "select open terminal" }) -- file explorer binds (nvim-tree) vim.keymap.set("n", "fe", ":NvimTreeToggle ", { desc = "Toggle nvim tree" }) -- code actions vim.keymap.set("n", "ca", function() require("tiny-code-action").code_action() end, { desc = "Show code actions", noremap = true, silent = true }) -- disable annoying inline type things vim.lsp.inlay_hint.enable(false) vim.diagnostic.config({virtual_text = false})