aboutsummaryrefslogtreecommitdiffstats
path: root/test/minimal_init.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-04-03 12:45:43 -0700
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-04-03 13:07:37 -0700
commit9fe7a37b85db499ccbc7ccd92af474e9e98f52e3 (patch)
treef6245e4302325bfa1fb9439f98d6b1faebf6f2ec /test/minimal_init.lua
parentminimal config: update (diff)
downloadnvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar.gz
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar.bz2
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar.lz
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar.xz
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.tar.zst
nvim-lspconfig-9fe7a37b85db499ccbc7ccd92af474e9e98f52e3.zip
minimal config: make bootstrap on first start
Diffstat (limited to 'test/minimal_init.lua')
-rw-r--r--test/minimal_init.lua121
1 files changed, 63 insertions, 58 deletions
diff --git a/test/minimal_init.lua b/test/minimal_init.lua
index 84d38b26..4cc3dbde 100644
--- a/test/minimal_init.lua
+++ b/test/minimal_init.lua
@@ -3,69 +3,74 @@ local fn = vim.fn
local install_path = '/tmp/nvim/site/pack/packer/start/packer.nvim'
-if fn.empty(fn.glob(install_path)) > 0 then
- vim.fn.execute('!git clone https://github.com/wbthomason/packer.nvim ' .. install_path)
-end
-
vim.cmd [[set packpath=/tmp/nvim/site]]
-vim.cmd [[autocmd BufWritePost minimal_init.lua PackerCompile]]
-vim.cmd [[autocmd BufWritePost minimal_init.lua PackerInstall]]
-local use = require('packer').use
-require("packer").startup(
- {
- function()
- use 'wbthomason/packer.nvim'
- use "neovim/nvim-lspconfig"
- end,
- config = {package_root = '/tmp/nvim/site/pack'}
- }
-)
+local function load_plugins()
+ local use = require('packer').use
+ require("packer").startup(
+ {
+ function()
+ use 'wbthomason/packer.nvim'
+ use "neovim/nvim-lspconfig"
+ end,
+ config = {package_root = '/tmp/nvim/site/pack'}
+ }
+ )
+end
--- LSP settings
--- log file location: $HOME/.local/share/nvim/lsp.log
-vim.lsp.set_log_level("debug")
-local nvim_lsp = require('lspconfig')
-local on_attach = function(_, bufnr)
- local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
- local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
+_G.load_config = function()
+ vim.lsp.set_log_level("trace")
+ local nvim_lsp = require('lspconfig')
+ local on_attach = function(_, bufnr)
+ local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
+ local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
+ buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
- -- Mappings.
- local opts = { noremap=true, silent=true }
- buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
- buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
- buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
- buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
- buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
- buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
- buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
- buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
-end
+ -- Mappings.
+ local opts = { noremap=true, silent=true }
+ buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
+ buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
+ buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
+ buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
+ buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
+ buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
+ buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
+ buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
+ buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
+ buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
+ buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
+ buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
+ buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
+ buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
+ end
--- Add the server that troubles you here
-local name = "pyright"
-local cmd = { "pyright-langserver", "--stdio"} -- needed for elixirls, omnisharp, sumneko_lua
-if not name then
- print("You have not defined a server name, please edit minimal_init.lua")
-end
-if not nvim_lsp[name].document_config.default_config.cmd and (not cmd) then
- print([[You have not defined a server default cmd for a server
- that requires it please edit minimal_init.lua]])
-end
+ -- Add the server that troubles you here
+ local name = "pyright"
+ local cmd = { "pyright-langserver", "--stdio"} -- needed for elixirls, omnisharp, sumneko_lua
+ if not name then
+ print("You have not defined a server name, please edit minimal_init.lua")
+ end
+ if not nvim_lsp[name].document_config.default_config.cmd and (not cmd) then
+ print([[You have not defined a server default cmd for a server
+ that requires it please edit minimal_init.lua]])
+ end
-nvim_lsp[name].setup {
- cmd = cmd,
- on_attach = on_attach,
- }
+ nvim_lsp[name].setup {
+ cmd = cmd,
+ on_attach = on_attach,
+ }
-print([[You can find your log at $HOME/.local/share/nvim/lsp.log. Please paste in a
- github issue under a details tag as described in the issue template.]])
+ print([[You can find your log at $HOME/.cache/nvim/lsp.log. Please paste in a github issue under a details tag as described in the issue template.]])
+ end
+
+if fn.isdirectory(install_path) == 0 then
+ 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()
+ _G.load_config()
+end