summaryrefslogtreecommitdiff
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rw-r--r--nvim/init.lua106
1 files changed, 57 insertions, 49 deletions
diff --git a/nvim/init.lua b/nvim/init.lua
index 273200b..863c40b 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -1,5 +1,53 @@
+-- completion configuration
+local cmp = require'cmp'
+cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ window = {
+ completion = cmp.config.window.bordered(),
+ documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ }, {
+ { name = 'buffer' },
+ })
+})
+
+-- Language Server Protocol server configuration
+local capabilities = require('cmp_nvim_lsp').default_capabilities()
+local lsp = require'lspconfig'
+local servers = {
+ 'clangd',
+ 'pyright',
+ 'gopls',
+-- more: pack/neovim/start/nvim-lspconfig/lua/lspconfig/server_configurations
+}
+for _, server in ipairs(servers) do
+ lsp[server].setup{capabilities = capabilities}
+end
+
+-- snippet loading configuration
+require("luasnip.loaders.from_vscode").lazy_load()
+
+-- setup telescope
+local telescope_builtin = require('telescope.builtin')
+
vim.cmd.syntax('on')
vim.cmd.filetype({'plugin', 'indent', 'on'})
+vim.cmd.highlight('SpellBad', 'ctermbg=Red')
+vim.cmd.highlight('SpellBad', 'ctermfg=Black')
vim.opt.mouse = nil
vim.opt.tabstop = 4
@@ -15,57 +63,17 @@ vim.opt.list = true
vim.opt.listchars = {tab = '→ ', nbsp = '␣', trail = '•'}
vim.opt.spell = true
+-- telescope related keymaps
+vim.g.mapleader = ' '
+vim.keymap.set('n', '<leader>ff', telescope_builtin.find_files, {})
+vim.keymap.set('n', '<leader>fg', telescope_builtin.live_grep, {})
+vim.keymap.set('n', '<leader>fb', telescope_builtin.buffers, {})
+vim.keymap.set('n', '<leader>fh', telescope_builtin.help_tags, {})
+
+-- tab management
vim.keymap.set('n', '<Tab>', ':tabn <LF>')
vim.keymap.set('n', '<S-Tab>', ':tabp <LF>')
+-- convert binary buffer to ASCII and back
vim.keymap.set('n', '<F5>', ':%!xxd -r <LF>')
vim.keymap.set('n', '<F6>', ':%!xxd <LF>')
-
-vim.cmd.highlight('SpellBad', 'ctermbg=Red')
-vim.cmd.highlight('SpellBad', 'ctermfg=Black')
-
-local cmp = require'cmp'
-cmp.setup({
- snippet = {
- expand = function(args)
- require('luasnip').lsp_expand(args.body)
- end,
- },
- window = {
- completion = cmp.config.window.bordered(),
- documentation = cmp.config.window.bordered(),
- },
- mapping = cmp.mapping.preset.insert({
- ['<C-b>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({ select = true }),
- }),
- sources = cmp.config.sources({
- { name = 'nvim_lsp' },
- { name = 'luasnip' },
- }, {
- { name = 'buffer' },
- })
-})
-
-local capabilities = require('cmp_nvim_lsp').default_capabilities()
-local lsp = require'lspconfig'
-local servers = {
- 'clangd',
- 'pyright',
- 'gopls',
-}
-for _, server in ipairs(servers) do
- lsp[server].setup{capabilities = capabilities}
-end
-
-require("luasnip.loaders.from_vscode").lazy_load()
-
-vim.g.mapleader = ' '
-local builtin = require('telescope.builtin')
-vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
-vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
-vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
-vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})