From eb8998aa2d45447f6388ae1cbffb23be54ccb008 Mon Sep 17 00:00:00 2001 From: AYM1607 Date: Wed, 31 Mar 2021 22:39:21 -0400 Subject: [PATCH] First version of the config, completely in lua. --- .netrwhist | 8 ++++ init.lua | 11 ++++++ lua/colorscheme.lua | 6 +++ lua/keymappings.lua | 28 ++++++++++++++ lua/lsp/init.lua | 11 ++++++ lua/lsp/python-ls.lua | 2 + lua/lsp/typescript-ls.lua | 2 + lua/nv-compe/init.lua | 79 +++++++++++++++++++++++++++++++++++++++ lua/nv-prettier/init.lua | 4 ++ lua/plugins.lua | 42 +++++++++++++++++++++ lua/settings.lua | 2 + 11 files changed, 195 insertions(+) create mode 100644 .netrwhist create mode 100644 init.lua create mode 100644 lua/colorscheme.lua create mode 100644 lua/keymappings.lua create mode 100644 lua/lsp/init.lua create mode 100644 lua/lsp/python-ls.lua create mode 100644 lua/lsp/typescript-ls.lua create mode 100644 lua/nv-compe/init.lua create mode 100644 lua/nv-prettier/init.lua create mode 100644 lua/plugins.lua create mode 100644 lua/settings.lua diff --git a/.netrwhist b/.netrwhist new file mode 100644 index 0000000..f9839c4 --- /dev/null +++ b/.netrwhist @@ -0,0 +1,8 @@ +let g:netrw_dirhistmax =10 +let g:netrw_dirhistcnt =6 +let g:netrw_dirhist_6='/Users/marianouvalle/dev/AtHomeHRI/backend' +let g:netrw_dirhist_5='/Users/marianouvalle/dev/AtHomeHRI' +let g:netrw_dirhist_4='/Users/marianouvalle/dev/ciudad-de-los-ninos' +let g:netrw_dirhist_3='/Users/marianouvalle/dev/ciudad-de-los-ninos/src' +let g:netrw_dirhist_2='/Users/marianouvalle/dev/ciudad-de-los-ninos' +let g:netrw_dirhist_1='/Users/marianouvalle' diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..68520c7 --- /dev/null +++ b/init.lua @@ -0,0 +1,11 @@ +require('plugins') +require('colorscheme') +require('keymappings') +require('settings') + +require('lsp') +require('lsp.typescript-ls') +require('lsp.python-ls') +require('nv-compe') + +require('nv-prettier') diff --git a/lua/colorscheme.lua b/lua/colorscheme.lua new file mode 100644 index 0000000..0cc8bda --- /dev/null +++ b/lua/colorscheme.lua @@ -0,0 +1,6 @@ +vim.cmd("colorscheme palenight") +vim.g.lightline={ + colorscheme='palenight' +} +vim.api.nvim_set_option('background', 'dark') +vim.api.nvim_set_option('termguicolors', true) diff --git a/lua/keymappings.lua b/lua/keymappings.lua new file mode 100644 index 0000000..3cac30b --- /dev/null +++ b/lua/keymappings.lua @@ -0,0 +1,28 @@ +-- Space as leader. +vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) +vim.g.mapleader = ' ' + +-- Exit insert mode with jk. +vim.api.nvim_set_keymap('i', 'jk', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('i', 'kj', '', {noremap = true, silent = true}) + +-- C-g as ESC +vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('i', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('v', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('s', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('x', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('c', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('o', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('l', '', '', {noremap = true, silent = true}) +vim.api.nvim_set_keymap('t', '', '', {noremap = true, silent = true}) + +-- Quick save. +vim.api.nvim_set_keymap('n', 'fw', ':w', {silent = true}) + +-- Toggle between buffesr. +vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) + +vim.api.nvim_set_keymap('n', 'ff', ':Files',{}) +vim.api.nvim_set_keymap('n', 'bs', ':Buffers',{}) +vim.api.nvim_set_keymap('n', 'ps', ':Rg', {noremap = true}) diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua new file mode 100644 index 0000000..2d1e79c --- /dev/null +++ b/lua/lsp/init.lua @@ -0,0 +1,11 @@ +vim.cmd('nnoremap gd lua vim.lsp.buf.definition()') +vim.cmd('nnoremap gD lua vim.lsp.buf.declaration()') +vim.cmd('nnoremap gr lua vim.lsp.buf.references()') +vim.cmd('nnoremap gi lua vim.lsp.buf.implementation()') + +vim.cmd('nnoremap K lua vim.lsp.buf.hover()') + +-- scroll down hover doc or scroll in definition preview +vim.cmd('nnoremap lua require(\'lspsaga.action\').smart_scroll_with_saga(1)') +-- scroll up hover doc +vim.cmd('nnoremap lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)') diff --git a/lua/lsp/python-ls.lua b/lua/lsp/python-ls.lua new file mode 100644 index 0000000..422ae0d --- /dev/null +++ b/lua/lsp/python-ls.lua @@ -0,0 +1,2 @@ +require'lspconfig'.pyright.setup{} + diff --git a/lua/lsp/typescript-ls.lua b/lua/lsp/typescript-ls.lua new file mode 100644 index 0000000..c5016c8 --- /dev/null +++ b/lua/lsp/typescript-ls.lua @@ -0,0 +1,2 @@ +require'lspconfig'.tsserver.setup{} + diff --git a/lua/nv-compe/init.lua b/lua/nv-compe/init.lua new file mode 100644 index 0000000..b18f897 --- /dev/null +++ b/lua/nv-compe/init.lua @@ -0,0 +1,79 @@ +vim.o.completeopt = "menuone,noselect" + +require'compe'.setup { + enabled = true; + autocomplete = true; + debug = false; + min_length = 1; + preselect = 'enable'; + throttle_time = 80; + source_timeout = 200; + incomplete_delay = 400; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; + documentation = false; + + source = { + path = true; + buffer = true; + calc = true; + vsnip = true; + nvim_lsp = true; + nvim_lua = true; + tags = true; + snippets_nvim = true; + treesitter = true; + }; +} + +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +local check_back_space = function() + local col = vim.fn.col('.') - 1 + if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + return true + else + return false + end +end + +-- Use (s-)tab to: +--- move to prev/next item in completion menuone +--- jump to prev/next snippet's placeholder +_G.tab_complete_only = function() + if vim.fn.pumvisible() == 1 then + return t "" + else + return t "" + end +end +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn.call("vsnip#available", {1}) == 1 then + return t "(vsnip-expand-or-jump)" + elseif check_back_space() then + return t "" + else + return vim.fn['compe#complete']() + end +end +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + else + return t "" + end +end + +vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete_only()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete_only()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) diff --git a/lua/nv-prettier/init.lua b/lua/nv-prettier/init.lua new file mode 100644 index 0000000..3ee31a0 --- /dev/null +++ b/lua/nv-prettier/init.lua @@ -0,0 +1,4 @@ +vim.g["prettier#autoformat"] = 1 +vim.g["prettier#autoformat_require_pragma"] = 0 +vim.g["prettier#exec_cmd_async"] = 1 + diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 0000000..13e2628 --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,42 @@ +local execute = vim.api.nvim_command +local fn = vim.fn + +local install_path = fn.stdpath('data') .. '/site/pack/packer/start/packer.nvim' + +if fn.empty(fn.glob(install_path)) > 0 then + execute('!git clone https://github.com/wbthomason/packer.nvim ' .. install_path) + execute 'packadd packer.nvim' +end + +return require('packer').startup(function(use) + -- Packer can manage itself as an optional plugin + use 'wbthomason/packer.nvim' + + -- LSP + use 'neovim/nvim-lspconfig' + use 'glepnir/lspsaga.nvim' + + -- Autocomplete + use 'hrsh7th/nvim-compe' + + -- Theme + use 'drewtempelmeyer/palenight.vim' + use 'kyazdani42/nvim-web-devicons' + + -- Syntax + use 'sheerun/vim-polyglot' + use {'prettier/vim-prettier', run = "yarn install"} + + -- FZF + use '/usr/local/opt/fzf' + use 'junegunn/fzf.vim' + + use { + 'nvim-telescope/telescope.nvim', + requires = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}} + } + + use 'jiangmiao/auto-pairs' + use 'itchyny/lightline.vim' + + end) diff --git a/lua/settings.lua b/lua/settings.lua new file mode 100644 index 0000000..69ed98c --- /dev/null +++ b/lua/settings.lua @@ -0,0 +1,2 @@ +vim.api.nvim_set_option('signcolumn', 'yes') +vim.cmd(":set number relativenumber")