diff --git a/init.lua b/init.lua index 1ca0277..71b3a0b 100644 --- a/init.lua +++ b/init.lua @@ -1,5 +1,4 @@ require('settings') -require('keymappings') require('nv-globals') require('plugins') require('colorscheme') @@ -10,8 +9,8 @@ require('keymappings') require('lsp') require('lsp.typescript-ls') require('lsp.python-ls') -require('lsp.lua-ls') -require('lsp.elixir-ls') +-- require('lsp.lua-ls') +-- require('lsp.elixir-ls') require('lsp.go-ls') require('lsp.ocaml-ls') -- require('lsp.sml-ls') diff --git a/lua/keymappings.lua b/lua/keymappings.lua index 781d226..6b18161 100644 --- a/lua/keymappings.lua +++ b/lua/keymappings.lua @@ -33,6 +33,11 @@ vim.api.nvim_set_keymap('t', '', '', {silent = true}) -- Move right when in insert mode. vim.api.nvim_set_keymap("i", '', '', {noremap = true, silent = true}) +-- Easily move between windows +vim.api.nvim_set_keymap("n", 'wm', 'h', {silent = true}) +vim.api.nvim_set_keymap("n", 'wn', 'j', {silent = true}) +vim.api.nvim_set_keymap("n", 'we', 'k', {silent = true}) +vim.api.nvim_set_keymap("n", 'wi', 'l', {silent = true}) -- Quick save. vim.api.nvim_set_keymap('n', 'fw', ':w', {silent = true}) diff --git a/lua/lsp/go-ls.lua b/lua/lsp/go-ls.lua index a007170..baca891 100644 --- a/lua/lsp/go-ls.lua +++ b/lua/lsp/go-ls.lua @@ -6,7 +6,7 @@ lspconfig.gopls.setup { -- floating_window = true, --hint_enable = true, fix_pos = true, - use_lspsaga = true, + -- use_lspsaga = true, handler_opts = { border = "rounded" -- double, single, shadow, none }, @@ -28,7 +28,7 @@ lspconfig.gopls.setup { } ------- Configre vim-go +------ Configure vim-go -- Disable autocomplete since we already have it with native lsp. vim.g.go_code_completion_enabled = 0 -- Disable gopls for the same reasons as above. @@ -39,8 +39,9 @@ vim.g.go_fmt_command = 'gofmt' vim.g.go_fmt_options = { gofmt = '-s', } - vim.g.go_imports_mode = 'goimports' +vim.g.go_mod_fmt_autosave = 1 +vim.g.go_imports_autosave = 1 -- Could confilg with lsp saga, should experiment. vim.g.go_doc_keywordprg_enabled = 0 diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index 377ae3a..37367a9 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -1,5 +1,6 @@ local lsp = vim.lsp local handlers = lsp.handlers +local keymap = vim.keymap.set -- Hover doc popup local pop_opts = { border = "rounded", max_width = 80 } @@ -10,5 +11,7 @@ vim.api.nvim_set_keymap('n', 'lgd', 'lua vim.lsp.buf.definition()lgD', 'lua vim.lsp.buf.declaration()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lgr', 'lua vim.lsp.buf.references()', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'lgi', 'lua vim.lsp.buf.implementation()', {noremap = true, silent = true}) -vim.api.nvim_set_keymap('n', 'lr', 'lua require("lspsaga.rename").rename()', {noremap = true, silent = true}) +-- vim.api.nvim_set_keymap('n', 'lr', 'lua require("lspsaga.rename").rename()', {noremap = true, silent = true}) +-- Rename all occurrences of the hovered word for the selected files +keymap("n", "lr", "Lspsaga rename ++project") vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {noremap = true, silent = true}) diff --git a/lua/lsp/typescript-ls.lua b/lua/lsp/typescript-ls.lua index e1317cb..fca66b7 100644 --- a/lua/lsp/typescript-ls.lua +++ b/lua/lsp/typescript-ls.lua @@ -15,6 +15,3 @@ require'lspconfig'.tsserver.setup{ filetypes = { "javascript", "javascriptreact", "javascript.jsx", "typescript", "typescriptreact", "typescript.tsx" }, root_dir = require('lspconfig/util').root_pattern("package.json", "tsconfig.json", "jsconfig.json", ".git") } - -local saga = require 'lspsaga' -saga.init_lsp_saga() diff --git a/lua/plugins.lua b/lua/plugins.lua index cbd89b3..69f74ef 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -14,7 +14,23 @@ return require('packer').startup(function(use) -- LSP use 'neovim/nvim-lspconfig' - use 'glepnir/lspsaga.nvim' + use({ + 'nvimdev/lspsaga.nvim', + after = 'nvim-lspconfig', + config = function() + require("lspsaga").setup({ + lightbulb = { + enable = false, + sign = false, + }, + }) + end, + requires = { + {"nvim-tree/nvim-web-devicons"}, + --Please make sure you install markdown and markdown_inline parser + {"nvim-treesitter/nvim-treesitter"} + } + }) use 'kabouzeid/nvim-lspinstall' -- Autocomplete use 'hrsh7th/nvim-compe' @@ -27,11 +43,11 @@ return require('packer').startup(function(use) -- Syntax use 'sheerun/vim-polyglot' - use { - 'prettier/vim-prettier', - run = "yarn install", - ft = {"javascript", "typescript", "json"} - } + -- use { + -- 'prettier/vim-prettier', + -- run = "yarn install", + -- ft = {"javascript", "typescript", "json"} + -- } use {'styled-components/vim-styled-components', branch = "main"} use 'dominikduda/vim_current_word' use {