-- 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) -- Telescope binds vim.keymap.set("n", "fb", ":Telescope file_browser") 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-lsp" }, settings = { Lua = { workspace = { checkThirdParty = false }, telemetry = { enable = false }, }, } } require('lspconfig').nil_ls.setup { on_attach = on_attach, capabilities = capabilities, }