diff options
| -rw-r--r-- | init.lua | 22 | ||||
| -rw-r--r-- | lua/lsp.lua | 43 |
2 files changed, 47 insertions, 18 deletions
@@ -1,22 +1,6 @@ --- Change color scheme --- set background=dark --- if has("gui_running") --- set guioptions-=m " remove menu bar --- set guioptions-=T " remove toolbar --- set guioptions-=r " remove right-hand scroll bar --- set guioptions-=L " remove left-hand scroll bar --- set guioptions-=e " vim looking tabs --- set antialias --- " set macligatures --- set guiligatures=!\"#$%&()*+-./:<=>?@[]^_{\|~ --- set guioptions+=k --- let &guifont="Fira Code:h17" --- colorscheme ayu --- else --- colorscheme molokai --- endif +-- Colorscheme vim.opt.termguicolors = true -vim.cmd.colorscheme("molokai") +vim.cmd.colorscheme("ayu") -- Tab configuration vim.opt.tabstop = 4 @@ -77,3 +61,5 @@ vim.g.netrw_liststyle = 1 require("keybindings") require("filetype-config") require("plugins") +require("lsp") + diff --git a/lua/lsp.lua b/lua/lsp.lua new file mode 100644 index 0000000..b08cce0 --- /dev/null +++ b/lua/lsp.lua @@ -0,0 +1,43 @@ +local lspconf = { + { + pattern = {"*.rs"}, + options = { + name = 'rust-analyzer', + cmd = {'rustup', 'run', 'stable', 'rust-analyzer'}, + root_dir = vim.fs.dirname(vim.fs.find({'Cargo.toml'}, { upward = true })[1]), + }, + format = true, + } +} + +for _, config in pairs(lspconf) do + vim.api.nvim_create_autocmd("BufEnter", { + pattern = config.pattern, + callback = function() + local client = vim.lsp.start(config.options) + vim.lsp.buf_attach_client(0, client) + end + }) + if config.format then + vim.api.nvim_create_autocmd("BufWritePre", { + pattern = config.pattern, + callback = function() + vim.lsp.buf.format({ async = false }) + end + }) + end +end + +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + vim.keymap.set('n', '<leader>ld', vim.lsp.buf.definition) + vim.keymap.set('n', '<leader>lr', vim.lsp.buf.references) + vim.keymap.set('n', '<leader>li', vim.lsp.buf.implementation) + vim.keymap.set('n', '<leader>lh', vim.lsp.buf.hover) + vim.keymap.set('n', '<leader>ls', vim.lsp.buf.signature_help) + vim.keymap.set('n', '<leader>lrn', vim.lsp.buf.rename) + end, +}) + +vim.opt.completeopt = {"menu"} + |