local map = vim.api.nvim_set_keymap local opts = { noremap=true, silent=true } -- General settings vim.opt.mouse = 'a' vim.opt.undofile = true vim.opt.textwidth = 80 map('', 'Q', '', opts) -- Polyglot vim.g.polyglot_disabled = {'sensible'} -- Plugins local install_path = vim.fn.stdpath('data') .. '/site/pack/paqs/start/paq-nvim' if vim.fn.empty(vim.fn.glob(install_path)) > 0 then vim.fn.system({'git', 'clone', '--depth=1', 'https://github.com/savq/paq-nvim.git', install_path}) end require('paq') { 'ap/vim-css-color'; -- Highlight css colors 'ctrlpvim/ctrlp.vim'; -- Fuzzy file finding 'editorconfig/editorconfig-vim'; -- Follow editorconfig 'godlygeek/tabular'; -- Line things up 'lifepillar/vim-mucomplete'; -- Simple autocompletion 'meain/hima-vim'; -- Nice color scheme 'neovim/nvim-lspconfig'; -- LSP configurations 'ntpeters/vim-better-whitespace'; -- Highlight and strip whitespace 'sheerun/vim-polyglot'; -- Language pack 'tpope/vim-commentary'; -- Easily comment 'tpope/vim-rsi'; -- Readline bindings 'tpope/vim-sensible'; -- Sensible defaults 'tpope/vim-speeddating'; -- Modify dates with C-a, C-x 'tpope/vim-surround'; -- Easily modify surrounding chars } -- Colorscheme vim.opt.termguicolors = true vim.g.colors_name = 'hima' -- Easier split movement map('n', '', '', opts) map('n', '', '', opts) map('n', '', '', opts) map('n', '', '', opts) -- Clear search highlighting map('n', '', ':noh', opts) -- Completion vim.opt.completeopt = vim.opt.completeopt + 'menuone' vim.opt.completeopt = vim.opt.completeopt - 'preview' vim.opt.shortmess = vim.opt.shortmess + 'c' -- LSP local lspconfig = require('lspconfig') local on_attach = function(client, bufnr) -- Shorthand 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 -- Use omnifunc for completion buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') -- Keybindings 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', 'gr', 'lua vim.lsp.buf.references()', opts) buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', 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) end -- Add servers local servers = { 'clangd' } for _, server in ipairs(servers) do lspconfig[server].setup {on_attach = on_attach} end vim.opt.signcolumn = 'no' -- Jump to files with gf vim.opt.hidden = true vim.opt.path = vim.opt.path + '**'