my neovim conf ported to lua

This commit is contained in:
Patrick Michl 2021-09-02 12:45:39 +02:00
commit 0bc8580653
7 changed files with 195 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
plugin/packer_compiled.lua

7
init.lua Normal file
View File

@ -0,0 +1,7 @@
require 'plugins'
vim.cmd('colorscheme space-vim-dark')
require 'lsp'
require 'settings'
require 'keys'

22
lua/keys.lua Normal file
View File

@ -0,0 +1,22 @@
local key = vim.api.nvim_set_keymap
local u = require('utils')
vim.cmd([[autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif]])
vim.cmd([[autocmd BufNewFile,BufRead *.md setlocal filetype=notes]])
key('n', ';', ':Files<CR>', {})
key('', '<C-n>', ':NERDTreeToggle<CR>', {})
-- LSP Key Config
local silent_opts = {silent = true}
key('n', '<c-]>', ':lua vim.lsp.buf.definition()<CR>', silent_opts)
key('n', 'K', ':lua vim.lsp.buf.hover()<CR>', silent_opts)
key('n', 'gD', ':lua vim.lsp.buf.implementation()<CR>', silent_opts)
key('n', '<c-k>', ':lua vim.lsp.buf.signature_help()<CR>', silent_opts)
key('n', '1gD', ':lua vim.lsp.buf.type_definition()<CR>', silent_opts)
key('n', 'gr', ':lua vim.lsp.buf.references()<CR>', silent_opts)
key('n', 'g0', ':lua vim.lsp.buf.document_symbol()<CR>', silent_opts)
key('n', 'gW', ':lua vim.lsp.buf.workspace_symbol()<CR>', silent_opts)
key('n', 'gd', ':lua vim.lsp.buf.definition()<CR>', silent_opts)
key('n', 'ga', ':lua vim.lsp.buf.code_action()<CR>', silent_opts)
key('n', 'ff', ':lua vim.lsp.buf.formatting()<CR>', silent_opts)

69
lua/lsp.lua Normal file
View File

@ -0,0 +1,69 @@
local nvim_lsp = require'lspconfig'
local function setup_servers()
require'lspinstall'.setup()
local servers = require'lspinstall'.installed_servers()
for _, lsp in pairs(servers) do
nvim_lsp[lsp].setup{}
end
end
local opts = {
tools = {
autoSetHints = true,
hover_with_actions = true,
runnables = {
use_telescope = true
},
inlay_hints = {
show_parameter_hints = false,
parameter_hints_prefix = "",
other_hints_prefix = "",
},
},
-- all the opts to send to nvim-lspconfig
-- these override the defaults set by rust-tools.nvim
-- see https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#rust_analyzer
server = {}, -- rust-analyer options
}
require('rust-tools').setup(opts)
setup_servers()
require'lspinstall'.post_install_hook = function ()
setup_servers()
vim.cmd("bufdo e")
end
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
})
},
-- Installed sources
sources = {
{ name = 'nvim_lsp' },
{ name = 'vsnip' },
{ name = 'path' },
{ name = 'buffer' },
},
})

45
lua/plugins.lua Normal file
View File

@ -0,0 +1,45 @@
vim.cmd([[autocmd BufWritePost plugins.lua source <afile> | PackerCompile]])
return require('packer').startup({function()
-- Packer can manage itself
use 'wbthomason/packer.nvim'
use 'vim-airline/vim-airline'
use 'scrooloose/nerdtree'
use 'Xuyuanp/nerdtree-git-plugin'
use 'liuchengxu/space-vim-dark'
use 'tpope/vim-fugitive'
use 'tpope/vim-commentary'
use { 'tpope/vim-dispatch', opt = true, cmd = { 'Dispatch', 'Dispatch!' } }
use 'junegunn/fzf.vim'
use 'sheerun/vim-polyglot'
use 'honza/vim-snippets'
use 'szw/vim-tags'
use 'rodjek/vim-puppet'
use 'tpope/vim-rails'
use 'tpope/vim-haml'
use 'vim-scripts/bash-support.vim'
use "akinsho/nvim-toggleterm.lua"
use 'xolox/vim-notes'
use 'xolox/vim-misc'
use 'jremmen/vim-ripgrep'
use 'airblade/vim-gitgutter'
-- LSP Setup
use 'neovim/nvim-lspconfig'
use 'kabouzeid/nvim-lspinstall'
use 'hrsh7th/nvim-cmp'
use 'hrsh7th/cmp-nvim-lsp'
use 'hrsh7th/cmp-vsnip'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-buffer'
use 'simrat39/rust-tools.nvim'
use 'nvim-lua/popup.nvim'
use 'nvim-lua/plenary.nvim'
use 'nvim-telescope/telescope.nvim'
end,
config = {
display = {
open_fn = require('packer.util').float,
}
}})

26
lua/settings.lua Normal file
View File

@ -0,0 +1,26 @@
local o = vim.o
local wo = vim.wo
local bo = vim.bo
vim.cmd('syntax on')
vim.cmd('set number')
o.startofline = true
wo.cursorline = true
o.updatetime = 300
wo.signcolumn='yes'
o.showcmd = true
o.shell = 'bash'
o.mouse = 'a'
o.smarttab = true
bo.tabstop = 2
bo.shiftwidth = 2
bo.expandtab = true
wo.relativenumber = true
vim.cmd('set completeopt=menuone,noinsert,noselect')
vim.cmd('set shortmess+=c')

25
lua/utils.lua Normal file
View File

@ -0,0 +1,25 @@
local M = {}
function M.create_augroup(autocmds, name)
vim.cmd('augroup ' .. name)
vim.cmd('autocmd!')
for _, autocmd in ipairs(autocmds) do
vim.cmd('autocmd ' .. table.concat(autocmd, ' '))
end
vim.cmd('augroup END')
end
function M.create_function(body, name)
vim.cmd('function! ' .. name)
for _, line in ipairs(body) do
vim.cmd(line)
end
vim.cmd('endfunction')
end
function _G.dump(...)
local objects = vim.tbl_map(vim.inspect, {...})
print(unpack(objects))
end
return M