From 595a4d287bd78e81746d67890cc5cae605753884 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 2 Apr 2022 00:01:49 +0200 Subject: [PATCH 1/5] Configure lua lsp to have vim and use as global variables --- lua/setup/lspinstall.lua | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lua/setup/lspinstall.lua b/lua/setup/lspinstall.lua index 4da0d3c..59a7879 100644 --- a/lua/setup/lspinstall.lua +++ b/lua/setup/lspinstall.lua @@ -1,5 +1,3 @@ -local utils = require('utils') - local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.documentationFormat = { 'markdown', 'plaintext' } capabilities.textDocument.completion.completionItem.snippetSupport = true @@ -127,6 +125,34 @@ lsp_installer.on_server_ready(function(server) return end + if server.name == 'sumneko_lua' then + local lua_rtp = vim.split(package.path, ';') + table.insert(lua_rtp, 'lua/?.lua') + table.insert(lua_rtp, 'lua/?/init.lua') + opts.settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + -- Setup your lua path + path = lua_rtp, + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = { 'vim', 'use' }, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = vim.api.nvim_get_runtime_file('', true), + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + } + end + -- This setup() function is exactly the same as lspconfig's setup function (:help lspconfig-quickstart) server:setup(opts) vim.cmd([[ do User LspAttachBuffers ]]) From ab1de6c1de9552a340cded881e0ca9c55aac5a34 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 2 Apr 2022 00:03:29 +0200 Subject: [PATCH 2/5] stylua --- lua/my_plugins.lua | 6 +++--- lua/setup/lspinstall.lua | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/my_plugins.lua b/lua/my_plugins.lua index 03a4085..7ce826f 100644 --- a/lua/my_plugins.lua +++ b/lua/my_plugins.lua @@ -53,7 +53,7 @@ return require('packer').startup(function() }) use({ 'sainnhe/gruvbox-material', - disable = true + disable = true, }) use({ 'ellisonleao/gruvbox.nvim', @@ -116,7 +116,7 @@ return require('packer').startup(function() use({ 'ray-x/lsp_signature.nvim' }) use({ 's1n7ax/nvim-terminal', - config = get_setup('terminal') + config = get_setup('terminal'), }) use({ 'williamboman/nvim-lsp-installer', @@ -150,7 +150,7 @@ return require('packer').startup(function() 'kyazdani42/nvim-web-devicons', -- not strictly required, but recommended 'MunifTanjim/nui.nvim', }, - config = get_setup('neo-tree') + config = get_setup('neo-tree'), }) use({ 'mvllow/modes.nvim', diff --git a/lua/setup/lspinstall.lua b/lua/setup/lspinstall.lua index 59a7879..9ef067e 100644 --- a/lua/setup/lspinstall.lua +++ b/lua/setup/lspinstall.lua @@ -178,6 +178,6 @@ require('clangd_extensions').setup({ server = { on_attach = on_attach, capabilities = capabilities, - cmd = { 'clangd', '--compile-commands-dir=build_nvim' } + cmd = { 'clangd', '--compile-commands-dir=build_nvim' }, }, }) From 2425d5f29dbd10eeda2f46d1a1bf08b4567d3f06 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 2 Apr 2022 00:12:49 +0200 Subject: [PATCH 3/5] more lua style --- lua/my_keymappings.lua | 1 - lua/setup/cmp.lua | 3 +-- lua/setup/neo-tree.lua | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lua/my_keymappings.lua b/lua/my_keymappings.lua index 1f08e5f..2523321 100644 --- a/lua/my_keymappings.lua +++ b/lua/my_keymappings.lua @@ -68,4 +68,3 @@ utils.map('n', '', ':bd') -- to navigate the completion menu utils.map('i', '', 'pumvisible() ? "\\" : "\\"', { expr = true }) utils.map('i', '', 'pumvisible() ? "\\" : "\\"', { expr = true }) - diff --git a/lua/setup/cmp.lua b/lua/setup/cmp.lua index 96ac32e..2936411 100644 --- a/lua/setup/cmp.lua +++ b/lua/setup/cmp.lua @@ -11,7 +11,6 @@ local check_back_space = function() end cmp.setup({ - formatting = { format = function(entry, vim_item) -- fancy icons and a name of kind @@ -87,7 +86,7 @@ cmp.setup({ comparators = { cmp.config.compare.offset, cmp.config.compare.exact, - require("clangd_extensions.cmp_scores"), + require('clangd_extensions.cmp_scores'), cmp.config.compare.recently_used, cmp.config.compare.kind, cmp.config.compare.sort_text, diff --git a/lua/setup/neo-tree.lua b/lua/setup/neo-tree.lua index 99b1847..45322b6 100644 --- a/lua/setup/neo-tree.lua +++ b/lua/setup/neo-tree.lua @@ -48,6 +48,6 @@ require('neo-tree').setup({ hide_dotfiles = false, hide_gitignored = false, }, - } + }, }) utils.map('n', '\\', 'Neotree reveal') From f0f1c357401735f83e600e01b6d621a5e965707f Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 2 Apr 2022 02:10:47 +0200 Subject: [PATCH 4/5] Don't use null-ls in project nvimm --- lua/setup/project.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lua/setup/project.lua b/lua/setup/project.lua index 87d0c4f..9030be2 100644 --- a/lua/setup/project.lua +++ b/lua/setup/project.lua @@ -1,6 +1,7 @@ local utils = require('utils') require('project_nvim').setup({ silent_chdir = true, + ignore_lsp = { 'null-ls' }, }) require('telescope').load_extension('projects') utils.map('n', 'p', 'Telescope projects') From 99e257dbc1f73e8814604d32e44e3fad5bd22f64 Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Sat, 2 Apr 2022 02:22:16 +0200 Subject: [PATCH 5/5] added toggleterm --- lua/my_plugins.lua | 4 ++++ lua/setup/toggleterm.lua | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 lua/setup/toggleterm.lua diff --git a/lua/my_plugins.lua b/lua/my_plugins.lua index 7ce826f..8cb7577 100644 --- a/lua/my_plugins.lua +++ b/lua/my_plugins.lua @@ -162,6 +162,10 @@ return require('packer').startup(function() }) end, }) + use({ + 'akinsho/toggleterm.nvim', + config = get_setup('toggleterm') + }) if packer_bootstrap then require('packer').sync() end diff --git a/lua/setup/toggleterm.lua b/lua/setup/toggleterm.lua new file mode 100644 index 0000000..2bb2040 --- /dev/null +++ b/lua/setup/toggleterm.lua @@ -0,0 +1,32 @@ +require('toggleterm').setup({}) + +local Terminal = require('toggleterm.terminal').Terminal + +function _G.set_terminal_keymaps() + local opts = { noremap = true } + vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', 'jk', [[]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[h]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[j]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[k]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) +end + +-- Disbled for the moment because it is also set for lazygit +-- vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') + +local lazygit = Terminal:new({ + cmd = 'lazygit', + -- dir = vim.fn.getcwd(), + hidden = true, + direction = 'float', + on_open = function(term) + vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", "close", {noremap = true, silent = true}) + end, +}) + +function _lazygit_toggle() + lazygit:toggle() +end + +vim.api.nvim_set_keymap('n', 'g', 'lua _lazygit_toggle()', { noremap = true, silent = true })