-- Keybindings local map = vim.api.nvim_set_keymap map('n', '', 'h', { noremap = true }) map('n', '', 'j', { noremap = true }) map('n', '', 'k', { noremap = true }) map('n', '', 'l', { noremap = true }) map('n', '', ':q', { noremap = true }) -- Autocommands vim.cmd('au BufEnter * set noro') -- Settings vim.opt.relativenumber = true vim.opt.number = true vim.opt.cursorline = true vim.opt.signcolumn = "yes:3" vim.opt.title = true vim.opt.updatetime = 0 vim.opt.clipboard:prepend('unnamedplus') local runtimedir = os.getenv('XDG_RUNTIME_DIR') vim.opt.directory:prepend(runtimedir..'/vim/swap//') vim.opt.undodir:prepend(runtimedir..'/vim/undo//') vim.opt.swapfile = true vim.opt.undofile = true vim.opt.hlsearch = true vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.incsearch = true vim.opt.tabstop = 8 vim.opt.softtabstop = 0 vim.opt.expandtab = true vim.opt.shiftwidth = 4 vim.opt.smarttab = true vim.g.signify_priority = 5 vim.g.signify_sign_show_count = 0 vim.g.signify_sign_add = '┃' vim.g.signify_sign_delete = vim.g.signify_sign_add vim.g.signify_sign_delete_first_line = '┏━' vim.g.signify_sign_change = vim.g.signify_sign_add vim.g.signify_sign_change_delete = vim.g.signify_sign_delete -- Theming vim.g.tokyonight_style = 'night' vim.cmd[[ syntax enable colorscheme tokyonight ]] local colors = require("tokyonight.colors").setup {} vim.cmd("highlight SignifySignAdd guifg="..colors.green) vim.cmd("highlight SignifySignChange guifg="..colors.orange) vim.cmd("highlight SignifySignDelete guifg="..colors.red) vim.cmd("highlight SignifySignDeleteFirstLine guifg="..colors.red) vim.cmd("highlight SignifySignChangeDelete guifg="..colors.red) -- Plugins require('nvim-treesitter.configs').setup { highlight = { enable = true }, indent = { enable = false } } require('lualine').setup { options = { theme = 'tokyonight' } } -- LSP local nvim_lsp = require('lspconfig') local on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') local opts = { noremap = true, silent = true } buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) buf_set_keymap('n', 'e', 'lua vim.diagnostic.open_float(0, { scope = "line" })', opts) buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) buf_set_keymap('n', 'f', 'lua vim.lsp.buf.formatting()', opts) end