modified lsp config.
This commit is contained in:
		
							parent
							
								
									1796fdbbf9
								
							
						
					
					
						commit
						e90208c701
					
				
					 4 changed files with 76 additions and 100 deletions
				
			
		| 
						 | 
					@ -10,9 +10,6 @@ vim.g.mapleader = ';'
 | 
				
			||||||
--do package management
 | 
					--do package management
 | 
				
			||||||
require('impatient')
 | 
					require('impatient')
 | 
				
			||||||
require('packages')
 | 
					require('packages')
 | 
				
			||||||
require('LSPconfig')
 | 
					 | 
				
			||||||
require('cmp-lsp')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
--helper functions
 | 
					--helper functions
 | 
				
			||||||
	local function keyCode(string)
 | 
						local function keyCode(string)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,50 +1,6 @@
 | 
				
			||||||
local lsp_installer = require("nvim-lsp-installer")
 | 
					local lsp_installer = require("nvim-lsp-installer")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local opts = {}
 | 
				
			||||||
-- Include the servers you want to have installed by default below
 | 
					 | 
				
			||||||
local install_servers=function()
 | 
					 | 
				
			||||||
	local servers = {
 | 
					 | 
				
			||||||
		'pyright',
 | 
					 | 
				
			||||||
		'bashls',
 | 
					 | 
				
			||||||
		'rust_analyzer',
 | 
					 | 
				
			||||||
		'sumenko_lua',
 | 
					 | 
				
			||||||
		'ltex',
 | 
					 | 
				
			||||||
		'texlab',
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	local flag=false;
 | 
					 | 
				
			||||||
	for _, name in pairs(servers) do
 | 
					 | 
				
			||||||
		local server_is_found, server = lsp_installer.get_server(name)
 | 
					 | 
				
			||||||
		if server_is_found and not server:is_installed() then
 | 
					 | 
				
			||||||
			print("Installing " .. name)
 | 
					 | 
				
			||||||
			server:install()
 | 
					 | 
				
			||||||
			flag=true;
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
	if flag then
 | 
					 | 
				
			||||||
		print('All Servers Installed')
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lsp_installer.on_server_ready(function(server)
 | 
					 | 
				
			||||||
    local opts = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if server.name == "rust_analyzer" then
 | 
					 | 
				
			||||||
        -- Initialize the LSP via rust-tools instead
 | 
					 | 
				
			||||||
        require("rust-tools").setup {
 | 
					 | 
				
			||||||
            -- The "server" property provided in rust-tools setup function are the
 | 
					 | 
				
			||||||
            -- settings rust-tools will provide to lspconfig during init.
 | 
					 | 
				
			||||||
            -- We merge the necessary settings from nvim-lsp-installer (server:get_default_options())
 | 
					 | 
				
			||||||
            -- with the user's own settings (opts).
 | 
					 | 
				
			||||||
            server = vim.tbl_deep_extend("force", server:get_default_options(), opts),
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        server:attach_buffers()
 | 
					 | 
				
			||||||
        -- Only if standalone support is needed
 | 
					 | 
				
			||||||
        require("rust-tools").start_standalone_if_required()
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        server:setup(opts)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
end)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
local on_attach = function()
 | 
					local on_attach = function()
 | 
				
			||||||
	local function set_keymap(...) vim.api.nvim_set_keymap(...) end
 | 
						local function set_keymap(...) vim.api.nvim_set_keymap(...) end
 | 
				
			||||||
| 
						 | 
					@ -75,4 +31,3 @@ local on_attach = function()
 | 
				
			||||||
	set_keymap('', ';lm', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
 | 
						set_keymap('', ';lm', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
on_attach()
 | 
					on_attach()
 | 
				
			||||||
install_servers()
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,27 +47,22 @@ cmp.setup {
 | 
				
			||||||
		{ name = 'nvim_lsp' },
 | 
							{ name = 'nvim_lsp' },
 | 
				
			||||||
		{ name = 'path' },
 | 
							{ name = 'path' },
 | 
				
			||||||
		{ name = 'luasnip' },
 | 
							{ name = 'luasnip' },
 | 
				
			||||||
		{ name = 'buffer' },
 | 
					 | 
				
			||||||
		{ name = 'dictionary' },
 | 
					 | 
				
			||||||
		{ name = 'spell' },
 | 
					 | 
				
			||||||
		{ name = 'nvim_lsp_signature_help' },
 | 
							{ name = 'nvim_lsp_signature_help' },
 | 
				
			||||||
		{ name = 'emoji' },
 | 
							{ name = 'emoji' },
 | 
				
			||||||
		{ name = 'latex_symbols' },
 | 
							{ name = 'latex_symbols' },
 | 
				
			||||||
 | 
							-- { name = 'buffer' },
 | 
				
			||||||
		-- { name = 'digraphs' },
 | 
							-- { name = 'digraphs' },
 | 
				
			||||||
 | 
							-- { name = 'dictionary' },
 | 
				
			||||||
 | 
							-- { name = 'spell' },
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cmp.setup.cmdline(':', {
 | 
					 | 
				
			||||||
  sources = {
 | 
					 | 
				
			||||||
    { name = 'cmdline' }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cmp.setup.cmdline('/', {
 | 
					cmp.setup.cmdline('/', {
 | 
				
			||||||
	sources = cmp.config.sources({
 | 
						sources = cmp.config.sources({
 | 
				
			||||||
		{ name = 'nvim_lsp_document_symbol' },
 | 
							{ name = 'nvim_lsp_document_symbol' },
 | 
				
			||||||
		{ name = 'treesitter' },
 | 
							{ name = 'treesitter' },
 | 
				
			||||||
	}, {
 | 
						}, {
 | 
				
			||||||
		-- { name = 'buffer' }
 | 
							{ name = 'buffer' },
 | 
				
			||||||
 | 
							{ name = 'cmdline' },
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,10 +24,36 @@ return require('packer').startup(function(use)
 | 
				
			||||||
			incremental_selection={enable=true}
 | 
								incremental_selection={enable=true}
 | 
				
			||||||
		}end,
 | 
							}end,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
	use {
 | 
						use {
 | 
				
			||||||
		'neovim/nvim-lspconfig',
 | 
							{
 | 
				
			||||||
		'williamboman/nvim-lsp-installer',
 | 
								"williamboman/nvim-lsp-installer",
 | 
				
			||||||
 | 
								config = function ()
 | 
				
			||||||
 | 
									require("nvim-lsp-installer").setup {
 | 
				
			||||||
 | 
										ensure_installed = {
 | 
				
			||||||
 | 
											'pyright',
 | 
				
			||||||
 | 
											'bashls',
 | 
				
			||||||
 | 
											'rust_analyzer',
 | 
				
			||||||
 | 
											'sumenko_lua',
 | 
				
			||||||
 | 
											'texlab',
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
										automatic_installation = false,
 | 
				
			||||||
 | 
										ui = {
 | 
				
			||||||
 | 
											icons = {
 | 
				
			||||||
 | 
												server_installed = "✓",
 | 
				
			||||||
 | 
												server_pending = "➜",
 | 
				
			||||||
 | 
												server_uninstalled = "✗"
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"neovim/nvim-lspconfig",
 | 
				
			||||||
 | 
								after = "nvim-lsp-installer",
 | 
				
			||||||
 | 
								config = function()
 | 
				
			||||||
 | 
									require('LSPconfig')
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	use {'hrsh7th/nvim-cmp',
 | 
						use {'hrsh7th/nvim-cmp',
 | 
				
			||||||
| 
						 | 
					@ -46,7 +72,10 @@ return require('packer').startup(function(use)
 | 
				
			||||||
			'hrsh7th/cmp-emoji',
 | 
								'hrsh7th/cmp-emoji',
 | 
				
			||||||
			'ray-x/cmp-treesitter',
 | 
								'ray-x/cmp-treesitter',
 | 
				
			||||||
			'uga-rosa/cmp-dictionary',
 | 
								'uga-rosa/cmp-dictionary',
 | 
				
			||||||
		}
 | 
							},
 | 
				
			||||||
 | 
					        config = function()
 | 
				
			||||||
 | 
								require('cmp-lsp')
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	use {'L3MON4D3/LuaSnip',
 | 
						use {'L3MON4D3/LuaSnip',
 | 
				
			||||||
| 
						 | 
					@ -75,43 +104,43 @@ return require('packer').startup(function(use)
 | 
				
			||||||
		  'kyazdani42/nvim-web-devicons', -- optional, for file icon
 | 
							  'kyazdani42/nvim-web-devicons', -- optional, for file icon
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		config = function() require'nvim-tree'.setup {
 | 
							config = function() require'nvim-tree'.setup {
 | 
				
			||||||
			view={mapping={
 | 
								-- view={mapping={
 | 
				
			||||||
				{ key = {"<CR>", "o", "<2-LeftMouse>"}, action = "edit" },
 | 
								-- 	{ key = {"<CR>", "o", "<2-LeftMouse>"}, action = "edit" },
 | 
				
			||||||
				{ key = "<C-e>", action = "edit_in_place" },
 | 
								-- 	{ key = "<C-e>", action = "edit_in_place" },
 | 
				
			||||||
				{ key = {"O"}, action = "edit_no_picker" },
 | 
								-- 	{ key = {"O"}, action = "edit_no_picker" },
 | 
				
			||||||
				{ key = {"<2-RightMouse>", "<C-]>"},    action = "cd" },
 | 
								-- 	{ key = {"<2-RightMouse>", "<C-]>"},    action = "cd" },
 | 
				
			||||||
				{ key = "<C-v>", action = "vsplit" },
 | 
								-- 	{ key = "<C-v>", action = "vsplit" },
 | 
				
			||||||
				{ key = "<C-x>", action = "split" },
 | 
								-- 	{ key = "<C-x>", action = "split" },
 | 
				
			||||||
				{ key = "<C-t>", action = "tabnew" },
 | 
								-- 	{ key = "<C-t>", action = "tabnew" },
 | 
				
			||||||
				{ key = "<", action = "prev_sibling" },
 | 
								-- 	{ key = "<", action = "prev_sibling" },
 | 
				
			||||||
				{ key = ">", action = "next_sibling" },
 | 
								-- 	{ key = ">", action = "next_sibling" },
 | 
				
			||||||
				{ key = "P", action = "parent_node" },
 | 
								-- 	{ key = "P", action = "parent_node" },
 | 
				
			||||||
				{ key = "<BS>", action = "close_node" },
 | 
								-- 	{ key = "<BS>", action = "close_node" },
 | 
				
			||||||
				{ key = "<Tab>", action = "preview" },
 | 
								-- 	{ key = "<Tab>", action = "preview" },
 | 
				
			||||||
				{ key = "K", action = "first_sibling" },
 | 
								-- 	{ key = "K", action = "first_sibling" },
 | 
				
			||||||
				{ key = "J", action = "last_sibling" },
 | 
								-- 	{ key = "J", action = "last_sibling" },
 | 
				
			||||||
				{ key = "I", action = "toggle_ignored" },
 | 
								-- 	{ key = "I", action = "toggle_ignored" },
 | 
				
			||||||
				{ key = "H", action = "toggle_dotfiles" },
 | 
								-- 	{ key = "H", action = "toggle_dotfiles" },
 | 
				
			||||||
				{ key = "R", action = "refresh" },
 | 
								-- 	{ key = "R", action = "refresh" },
 | 
				
			||||||
				{ key = "a", action = "create" },
 | 
								-- 	{ key = "a", action = "create" },
 | 
				
			||||||
				{ key = "d", action = "remove" },
 | 
								-- 	{ key = "d", action = "remove" },
 | 
				
			||||||
				{ key = "D", action = "trash" },
 | 
								-- 	{ key = "D", action = "trash" },
 | 
				
			||||||
				{ key = "r", action = "rename" },
 | 
								-- 	{ key = "r", action = "rename" },
 | 
				
			||||||
				{ key = "<C-r>", action = "full_rename" },
 | 
								-- 	{ key = "<C-r>", action = "full_rename" },
 | 
				
			||||||
				{ key = "x", action = "cut" },
 | 
								-- 	{ key = "x", action = "cut" },
 | 
				
			||||||
				{ key = "c", action = "copy" },
 | 
								-- 	{ key = "c", action = "copy" },
 | 
				
			||||||
				{ key = "p", action = "paste" },
 | 
								-- 	{ key = "p", action = "paste" },
 | 
				
			||||||
				{ key = "y", action = "copy_name" },
 | 
								-- 	{ key = "y", action = "copy_name" },
 | 
				
			||||||
				{ key = "Y", action = "copy_path" },
 | 
								-- 	{ key = "Y", action = "copy_path" },
 | 
				
			||||||
				{ key = "gy", action = "copy_absolute_path" },
 | 
								-- 	{ key = "gy", action = "copy_absolute_path" },
 | 
				
			||||||
				{ key = "[c", action = "prev_git_item" },
 | 
								-- 	{ key = "[c", action = "prev_git_item" },
 | 
				
			||||||
				{ key = "]c", action = "next_git_item" },
 | 
								-- 	{ key = "]c", action = "next_git_item" },
 | 
				
			||||||
				{ key = "-", action = "dir_up" },
 | 
								-- 	{ key = "-", action = "dir_up" },
 | 
				
			||||||
				{ key = "s", action = "system_open" },
 | 
								-- 	{ key = "s", action = "system_open" },
 | 
				
			||||||
				{ key = "q", action = "close" },
 | 
								-- 	{ key = "q", action = "close" },
 | 
				
			||||||
				{ key = "g?", action = "toggle_help" },
 | 
								-- 	{ key = "g?", action = "toggle_help" },
 | 
				
			||||||
				{ key = "W", action = "collapse_all" }
 | 
								-- 	{ key = "W", action = "collapse_all" }
 | 
				
			||||||
			}}
 | 
								-- }}
 | 
				
			||||||
		} end
 | 
							} end
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue