168 lines
5.1 KiB
Lua
168 lines
5.1 KiB
Lua
-- 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', '<C-h>', '<C-w>h', opts)
|
|
vim.keymap.set('n', '<C-j>', '<C-w>j', opts)
|
|
vim.keymap.set('n', '<C-k>', '<C-w>k', opts)
|
|
vim.keymap.set('n', '<C-l>', '<C-w>l', opts)
|
|
|
|
-- Resize with arrows
|
|
-- delta: 2 lines
|
|
vim.keymap.set('n', '<C-Up>', ':resize -2<CR>', opts)
|
|
vim.keymap.set('n', '<C-Down>', ':resize +2<CR>', opts)
|
|
vim.keymap.set('n', '<C-Left>', ':vertical resize -2<CR>', opts)
|
|
vim.keymap.set('n', '<C-Right>', ':vertical resize +2<CR>', opts)
|
|
|
|
|
|
vim.keymap.set('i', 'jk', '<Esc>', 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('<leader>r', vim.lsp.buf.rename)
|
|
bufmap('<leader>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('<leader>D', vim.lsp.buf.type_definition)
|
|
|
|
bufmap('gr', require('telescope.builtin').lsp_references)
|
|
bufmap('<leader>s', require('telescope.builtin').lsp_document_symbols)
|
|
bufmap('<leader>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', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
|
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
|
|
vim.keymap.set('n', '<leader>fb', ":Telescope file_browser<CR>", { desc = 'Telescope file_browser' })
|
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
|
|
|
-- Dap binds
|
|
vim.keymap.set('n', '<leader>do', dapui.open, { desc = "Open debug overlay" })
|
|
vim.keymap.set('n', '<leader>dc', dapui.close, { desc = "Close debug overlay" })
|
|
vim.keymap.set('n', '<F5>', dap.toggle_breakpoint, { desc = "Close debug overlay" })
|
|
vim.keymap.set('n', '<F6>', dap.continue, { desc = "Close debug overlay" })
|
|
vim.keymap.set('n', '<F7>', dap.step_over, { desc = "Close debug overlay" })
|
|
vim.keymap.set('n', '<F8>', dap.step_into, { desc = "Close debug overlay" })
|
|
|
|
|
|
|
|
|
|
|