1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
local on_windows = vim.loop.os_uname().version:match "Windows"
local function join_paths(...)
local path_sep = on_windows and "\\" or "/"
local result = table.concat({ ... }, path_sep)
return result
end
vim.opt.runtimepath = vim.env.VIMRUNTIME
vim.opt.completeopt = "menu"
local temp_dir = vim.loop.os_getenv "TEMP" or "/tmp"
vim.opt.packpath = join_paths(temp_dir, "nvim-lsp-installer-debug", "site")
local package_root = join_paths(temp_dir, "nvim-lsp-installer-debug", "site", "pack")
local install_path = join_paths(package_root, "packer", "start", "packer.nvim")
local compile_path = join_paths(install_path, "plugin", "packer_compiled.lua")
local function load_plugins()
require("packer").startup {
{
"wbthomason/packer.nvim",
"neovim/nvim-lspconfig",
"williamboman/nvim-lsp-installer",
},
config = {
package_root = package_root,
compile_path = compile_path,
},
}
end
function _G.load_config()
-- ==================================================
-- ======= MODIFY YOUR CONFIG HERE, IF NEEDED =======
-- ==================================================
local lsp_installer = require "nvim-lsp-installer"
local function on_attach(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
end
require("nvim-lsp-installer").settings {
log = vim.log.levels.DEBUG,
}
lsp_installer.on_server_ready(function(server)
server:setup {
on_attach = on_attach,
}
end)
-- ==================================================
end
if vim.fn.isdirectory(install_path) == 0 then
vim.fn.system { "git", "clone", "https://github.com/wbthomason/packer.nvim", install_path }
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once lua load_config()]]
else
load_plugins()
require("packer").sync()
_G.load_config()
end
|