From 425f6135ec366b9c38b00c8936ad728dbf377714 Mon Sep 17 00:00:00 2001 From: Nanderty Date: Tue, 21 Mar 2023 19:22:45 +0100 Subject: lazy all --- lua/+ | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 lua/+ (limited to 'lua/+') diff --git a/lua/+ b/lua/+ new file mode 100644 index 0000000..2d20dc6 --- /dev/null +++ b/lua/+ @@ -0,0 +1,87 @@ +return { + { + 'L3MON4D3/LuaSnip', + dependencies = { + 'iurimateus/luasnip-latex-snippets.nvim', + 'rafamadriz/friendly-snippets', + }, + config = function() + require('luasnip-latex-snippets').setup() + require('luasnip.loaders.from_vscode').lazy_load() + end + }, + { + 'hrsh7th/nvim-cmp', + event = 'InsertEnter', + dependencies = { + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-calc', + 'saadparwaiz1/cmp_luasnip', + }, + + opts = function() + local has_words_before = function() + unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match('%s') == nil + end + + local luasnip = require('luasnip') + local cmp = require('cmp') + + luasnip.config.set_config({ + history = true, + enable_autosnippets = true, + }) + + return { + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + + [''] = cmp.mapping.confirm({ select = false }), + + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { 'i', 's' }), + + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { 'i', 's' }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'buffer' }, + { name = 'path' }, + { name = 'calc' }, + }), + formatting = { + format = function(_, item) + item.kind = (require('icons').kinds[item.kind] or ' ')..item.kind + return item + end + } + } + end, + }, f +} -- cgit v1.2.3