-- 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 -- -- 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) -- Lazy require("config.lazy") -- require("flutter-tools").setup {} -- use defaults require("catppuccin").setup({ integrations = { cmp = false, gitsigns = true, nvimtree = true, treesitter = true, notify = false, mini = { enabled = false, indentscope_color = "", }, } }) -- css colors vim.opt.termguicolors = true require('nvim-highlight-colors').setup({}) vim.cmd.colorscheme "catppuccin" -- lsp local on_attach = function(_, bufnr) local bufmap = function(keys, func) vim.keymap.set('n', keys, func, { buffer = bufnr }) end bufmap('r', vim.lsp.buf.rename) bufmap('a', vim.lsp.buf.code_action) bufmap('gd', vim.lsp.buf.definition) bufmap('gD', vim.lsp.buf.declaration) bufmap('gI', vim.lsp.buf.implementation) bufmap('D', vim.lsp.buf.type_definition) bufmap('gr', require('telescope.builtin').lsp_references) bufmap('s', require('telescope.builtin').lsp_document_symbols) bufmap('S', require('telescope.builtin').lsp_dynamic_workspace_symbols) bufmap('K', vim.lsp.buf.hover) vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_) vim.lsp.buf.format() end, {}) end local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities = require('coq').lsp_ensure_capabilities(capabilities) require('lspconfig').lua_ls.setup { on_attach = on_attach, capabilities = capabilities, root_dir = function() return vim.loop.cwd() end, cmd = { "lua-language-server" }, settings = { Lua = { workspace = { checkThirdParty = false }, telemetry = { enable = false }, }, } } require('lspconfig').nil_ls.setup { on_attach = on_attach, capabilities = capabilities, } --[[ require('lspconfig').rust_analyzer.setup { on_attach = on_attach, capabilities = capabilities, } ]] -- Plugin setups require('lualine').setup() require("dapui").setup() require("ibl").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 -------------------------------------------- local builtin = require('telescope.builtin') -- 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' }) -- 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 = "Close debug overlay" }) vim.keymap.set('n', '', dap.continue, { desc = "Close debug overlay" }) vim.keymap.set('n', '', dap.step_over, { desc = "Close debug overlay" }) vim.keymap.set('n', '', dap.step_into, { desc = "Close debug overlay" })