summary refs log tree commit diff
path: root/.vim/lua/plugins
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.vim/lua/plugins.lua201
-rw-r--r--.vim/lua/plugins/_colorizer.lua8
-rw-r--r--.vim/lua/plugins/_completion.lua17
-rw-r--r--.vim/lua/plugins/_git-messenger.lua3
-rw-r--r--.vim/lua/plugins/_goyo.lua9
-rw-r--r--.vim/lua/plugins/_indent-guides.lua4
-rw-r--r--.vim/lua/plugins/_limelight.lua7
-rw-r--r--.vim/lua/plugins/_lsp.lua (renamed from .vim/lua/conf/lsp.lua)57
-rw-r--r--.vim/lua/plugins/_markdown.lua9
-rw-r--r--.vim/lua/plugins/_signify.lua6
-rw-r--r--.vim/lua/plugins/_telescope.lua99
-rw-r--r--.vim/lua/plugins/_treesitter.lua (renamed from .vim/lua/conf/treesitter.lua)2
-rw-r--r--.vim/lua/plugins/_ultisnips.lua4
-rw-r--r--.vim/lua/plugins/_vimtex.lua8
14 files changed, 325 insertions, 109 deletions
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua
index 0ccfb05..4830b4b 100644
--- a/.vim/lua/plugins.lua
+++ b/.vim/lua/plugins.lua
@@ -1,24 +1,27 @@
 -- load by calling `lua require('plugins')` from your init.vim
+local cmd = vim.cmd
+local g = vim.g
+local u = require('utils')
 
 function disable_distribution_plugins()
-  vim.g.loaded_gzip              = 1
-  vim.g.loaded_tar               = 1
-  vim.g.loaded_tarPlugin         = 1
-  vim.g.loaded_zip               = 1
-  vim.g.loaded_zipPlugin         = 1
-  vim.g.loaded_getscript         = 1
-  vim.g.loaded_getscriptPlugin   = 1
-  vim.g.loaded_vimball           = 1
-  vim.g.loaded_vimballPlugin     = 1
-  vim.g.loaded_matchit           = 1
-  -- vim.g.loaded_matchparen        = 1
-  vim.g.loaded_2html_plugin      = 1
-  vim.g.loaded_logiPat           = 1
-  vim.g.loaded_rrhelper          = 1
-  vim.g.loaded_netrw             = 1
-  vim.g.loaded_netrwPlugin       = 1
-  vim.g.loaded_netrwSettings     = 1
-  vim.g.loaded_netrwFileHandlers = 1
+	g.loaded_gzip              = 1
+	g.loaded_tar               = 1
+	g.loaded_tarPlugin         = 1
+	g.loaded_zip               = 1
+	g.loaded_zipPlugin         = 1
+	g.loaded_getscript         = 1
+	g.loaded_getscriptPlugin   = 1
+	g.loaded_vimball           = 1
+	g.loaded_vimballPlugin     = 1
+	g.loaded_matchit           = 1
+	-- g.loaded_matchparen        = 1
+	g.loaded_2html_plugin      = 1
+	g.loaded_logiPat           = 1
+	g.loaded_rrhelper          = 1
+	g.loaded_netrw             = 1
+	g.loaded_netrwPlugin       = 1
+	g.loaded_netrwSettings     = 1
+	g.loaded_netrwFileHandlers = 1
 end
 
 -- enable to bootstrap packer from ~/.local/share/nvim/site/pack/packer/opt/packer.nvim
@@ -31,112 +34,124 @@ return require'packer'.startup(function()
 	-- manage packer itself
 	use {'wbthomason/packer.nvim'}
 
-	use {'mhinz/vim-signify'}      -- git status in the sign column
+	-- git status in the sign column
+	use {'mhinz/vim-signify',
+		config = "require('plugins._signify')"
+	}
+
 	use {'tpope/vim-commentary'}   -- auto-comment using `gcc`
 	use {'cohama/lexima.vim'}      -- auto-close parens, brackets, etc.
 	use {'tpope/vim-surround'}     -- edit surroundings in pairs
-	-- use {'itchyny/lightline.vim'}  -- lightweight status bar
-	use {'glepnir/galaxyline.nvim',
-		branch = 'main',
-		config=function() require 'line' end}
-	use {'neomake/neomake'}        -- async job runner
-	use {'sbdchd/neoformat'}       -- async code formatter
+	-- use {'neomake/neomake'}        -- async job runner
+	-- use {'sbdchd/neoformat'}       -- async code formatter
 	use {'justinmk/vim-dirvish'}   -- folder browser
-	use {'justinmk/vim-sneak'}     -- powerful missing vim motions
-
-	use { 'neovim/nvim-lspconfig',
-		requires = {'nvim-lua/completion-nvim'}, -- , 'nvim-lua/diagnostic-nvim'},
-		config=function() require'conf.lsp' end}
+	use {'justinmk/vim-sneak',
+		config = "vim.g['sneak#label'] = true"
+	}
 
-	use { 'steelsojka/completion-buffers' }
-		-- config = function()
-		-- 	vim.api.nvim_command("autocmd BufEnter * require'completion'.on_attach()")
-		-- end}
+	use {'neovim/nvim-lspconfig',
+		requires = {
+			{'nvim-lua/completion-nvim',
+				requires = {'steelsojka/completion-buffers'},
+				config = "require('plugins._completion')"},
+			'kosayoda/nvim-lightbulb',
+		},
+		config = "require('plugins._lsp')"
+	}
 
-	use { 'nvim-treesitter/nvim-treesitter',
+	use {'nvim-treesitter/nvim-treesitter',
 		requires = {
 			'nvim-lua/completion-nvim',
 			'nvim-treesitter/completion-treesitter',
 			'nvim-treesitter/nvim-treesitter-refactor',
 		},
-		config=function() require'conf.treesitter' end}
-	
-	use { 'nvim-lua/telescope.nvim',
-		requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim'},
-		config=function() require'conf.telescope' end}
+		config = "require('plugins._treesitter')"
+	}
+
+	use {'nvim-telescope/telescope.nvim',
+		requires = {
+			'nvim-lua/popup.nvim',
+			'nvim-lua/plenary.nvim',
+			-- telescope plugins:
+			'nvim-telescope/telescope-fzf-writer.nvim',
+		},
+		config = "require('plugins._telescope')"
+	}
+
+	-- polyfill for some missing stuff
+	use {'tjdevries/astronauta.nvim'}
 
 	-- snippets
 	use {'SirVer/ultisnips',
-		requires = {'honza/vim-snippets'}}
-
-	-- interactive finder / dispatcher
-	-- use {'liuchengxu/vim-clap',
-	-- 	run = ':Clap install-binary!'}
+		requires = {'honza/vim-snippets'},
+		config = "require('plugins._ultisnips')"
+	}
 
-	use {'junegunn/vim-easy-align',
-		cmd = {'EasyAlign'}}
+	use {'junegunn/vim-easy-align'}
 
 	-- use {'tpope/vim-sleuth'}                -- detect indentation
-	use {'nathanaelkane/vim-indent-guides'} -- show indentation levels
+	use {'nathanaelkane/vim-indent-guides',
+		config = "require('plugins._indent-guides')"
+	}
+
 	use {'tpope/vim-repeat'}                -- extend '.' to plugins
-	use {'liuchengxu/vista.vim'}            -- sidebar populated by lsp, ctags, etc.
 	use {'sgur/vim-editorconfig'}           -- implements editorconfig in vimscript
-	-- use 'rhysd/conflict-marker.vim'
 	use {'michaeljsmith/vim-indent-object'} -- adds indentation text-objects
-	use {'kshenoy/vim-signature'}           -- toggle, display and navigate marks
-	-- highlight color codes
+	use {'kshenoy/vim-signature', disable = true}           -- toggle, display and navigate marks
 	use {'norcalli/nvim-colorizer.lua',
-		config=function()
-			require'colorizer'.setup(nil, {
-					name = true;
-					RRGGBB = true;
-					RRGGBBAA = false;
-					rgb_fn = true;
-					hsl_fn = true;
-					mode = 'background';
-				})
-		end}
-	use {'rhysd/git-messenger.vim'}         -- git-blame in a popup
-	use {'kassio/neoterm'}
+		config = "require('plugins._colorizer')"
+	}
+
+	use {'rhysd/git-messenger.vim',
+		config = "require('plugins._git-messenger')"
+	}
+
+	use {'rhysd/conflict-marker.vim', disable = true}
+	-- use {'liuchengxu/vista.vim'}            -- sidebar populated by lsp, ctags, etc.
+	use {'kassio/neoterm', disable = true}
 
 	-- languages
 	-- NOTE: these should only be loaded when they are required...
-	-- use {'rhysd/vim-grammarous',       ft = {'markdown', 'latex', 'tex'}}
-	use {'lervag/vimtex',                 ft = {'latex', 'tex'}}
-	use {'plasticboy/vim-markdown',       ft = {'markdown'}}
-	use {'masukomi/vim-markdown-folding', ft = {'markdown'}}
-	-- easy html editing
-	use {'mattn/emmet-vim',               ft = {'html'}}
-	-- use {'valloric/matchtagalways',    ft = {'html', 'vue', 'xml'}} -- visually match HTML tags enclosing cursor location
-	-- use {'ledger/vim-ledger',             ft = {'ledger'},
-	-- 	requires = {
-	-- 		'tpope/vim-speeddating',   -- easy time/date incrementing
-	-- 		'vim-scripts/utl.vim'}}    -- follow links/urls
-	
+	-- use {'rhysd/vim-grammarous',
+	-- 	ft = {'markdown', 'latex', 'tex'}
+	-- }
+	use {'lervag/vimtex',
+		ft = {'latex', 'tex'},
+		config = "require('plugins._vimtex')"
+	}
+	use {'plasticboy/vim-markdown',
+		ft = {'markdown'},
+		config = "require('plugins._markdown')"
+	}
+	use {'masukomi/vim-markdown-folding',
+		ft = {'markdown'}
+	}
+	use {'jjo/vim-cue',
+		ft = {'cue'}
+	}
 	use {'gentoo/gentoo-syntax'}
-	use {'jjo/vim-cue'}
 
 	-- multi-language support with lazy loading
 	-- NOTE: put language specific plugs before this to avoid conflicsts
 	use {'sheerun/vim-polyglot'}
 		
 	-- minimal ux
-	use {'junegunn/goyo.vim',         cmd = 'Goyo'}      -- hide ui clutter
-	use {'junegunn/limelight.vim',    cmd = 'Limelight'} -- dims colors
-	-- use 'equalsraf/neovim-gui-shim'
-
-	-- colorschemes
-	use {'NLKNguyen/papercolor-theme'}
-	-- use {'cideM/yui'}
-	use {'ayu-theme/ayu-vim'}
-	-- use {'rktjmp/lush.nvim',
-	-- 	config=function() require'conf.colors' end}
-
-	use {'dstein64/vim-startuptime'}
+	use {'junegunn/goyo.vim',
+		cmd = 'Goyo',
+		config = "require('plugins._goyo')"
+	}
+	use {'junegunn/limelight.vim',
+		cmd = 'Limelight',
+		config = "require('plugins._limelight')"
+	}
+
+	use {'rktjmp/lush.nvim',
+		disable = true,
+		config="require('plugins._lush')"}
+
+	-- vim config debugging
+	use {'dstein64/vim-startuptime', disable = true}
 
 	-- local
-	-- use {'~/devel/projects/nihon-theme/vim'}
-	-- use {'~/devel/projects/vim-orgdown'}
-	use {'~/.vim/devel/obsidian.nvim'}
-	use {'~/.vim/devel/vim-github-link'}
+	use {'~/devel/upstream/github.com/knsh14/vim-github-link'}
 end)
diff --git a/.vim/lua/plugins/_colorizer.lua b/.vim/lua/plugins/_colorizer.lua
new file mode 100644
index 0000000..7b6f678
--- /dev/null
+++ b/.vim/lua/plugins/_colorizer.lua
@@ -0,0 +1,8 @@
+require('colorizer').setup(nil, {
+  name = true;
+  RRGGBB = true;
+  RRGGBBAA = false;
+  rgb_fn = true;
+  hsl_fn = true;
+  mode = 'background';
+})
diff --git a/.vim/lua/plugins/_completion.lua b/.vim/lua/plugins/_completion.lua
new file mode 100644
index 0000000..8a4a92e
--- /dev/null
+++ b/.vim/lua/plugins/_completion.lua
@@ -0,0 +1,17 @@
+local g = vim.g
+local u = require('utils')
+
+g.completion_enable_auto_popup = true
+g.completion_enable_auto_signature = true
+g.completion_enable_auto_paren = false
+g.completion_confirm_key = '<tab>'
+g.completion_enable_snippet = 'UltiSnips'
+g.completion_auto_change_source = true
+g.completion_chain_complete_list = {
+	{complete_items = {'lsp', 'snippet', 'buffers', 'ts', 'path'}},
+	{mode = 'file'},
+}
+
+u.augroup('completion', {
+	{'BufEnter', '*', 'lua require("completion").on_attach()'},
+})
diff --git a/.vim/lua/plugins/_git-messenger.lua b/.vim/lua/plugins/_git-messenger.lua
new file mode 100644
index 0000000..ea1c271
--- /dev/null
+++ b/.vim/lua/plugins/_git-messenger.lua
@@ -0,0 +1,3 @@
+-- vim.g.git_messenger_include_diff = false
+vim.g.git_messenger_always_into_popup = true
+vim.g.git_messenger_close_on_cursor_moved = true
diff --git a/.vim/lua/plugins/_goyo.lua b/.vim/lua/plugins/_goyo.lua
new file mode 100644
index 0000000..e18d2ba
--- /dev/null
+++ b/.vim/lua/plugins/_goyo.lua
@@ -0,0 +1,9 @@
+vim.g.goyo_width = 120
+vim.g.goyo_height = 90
+vim.g.goyo_linenr = false
+require('utils').augroup('goyo_hooks', {
+  {'User', 'GoyoEnter', 'set laststatus=0 scrolloff=999'},
+  {'User', 'GoyoEnter', 'Limelight'},
+  {'User', 'GoyoLeave', 'set laststatus=2 scrolloff=5'},
+  {'User', 'GoyoLeave', 'Limelight!'},
+})
diff --git a/.vim/lua/plugins/_indent-guides.lua b/.vim/lua/plugins/_indent-guides.lua
new file mode 100644
index 0000000..eb3c4aa
--- /dev/null
+++ b/.vim/lua/plugins/_indent-guides.lua
@@ -0,0 +1,4 @@
+vim.g.indent_guides_enable_on_vim_startup = false
+vim.g.indent_guides_start_level = 2
+vim.g.indent_guides_color_change_percent = 2
+vim.g.indent_guides_guide_size = 1
diff --git a/.vim/lua/plugins/_limelight.lua b/.vim/lua/plugins/_limelight.lua
new file mode 100644
index 0000000..b77fdfc
--- /dev/null
+++ b/.vim/lua/plugins/_limelight.lua
@@ -0,0 +1,7 @@
+vim.g.limelight_conceal_ctermfg = 'gray'
+vim.g.limelight_conceal_ctermbg = 'none'
+vim.g.limelight_conceal_guifg = '#828282'
+vim.g.limelight_conceal_guibg = 'none'
+vim.g.limelight_default_coefficient = 0.5
+vim.g.limelight_paragraph_span = 1
+vim.g.limelight_priority = -1
diff --git a/.vim/lua/conf/lsp.lua b/.vim/lua/plugins/_lsp.lua
index 4249de5..9d98aca 100644
--- a/.vim/lua/conf/lsp.lua
+++ b/.vim/lua/plugins/_lsp.lua
@@ -1,21 +1,33 @@
 -- lsp config
 
-local lsp     = require 'lspconfig'
-local util    = require 'lspconfig.util'
+local lsp     = require('lspconfig')
+local util    = require('lspconfig.util')
+local u       = require('utils')
 
-local function my_attach(client)
+-- https://github.com/kosayoda/nvim-lightbulb
+require('nvim-lightbulb').update_lightbulb {
+	sign = {
+		enabled = true,
+		priority = 10,
+	},
+	float = {
+		enabled = true,
+		text = '󱉵',
+		win_opts = {},
+	},
+}
+
+local my_attach = function(client)
 	-- attach completion
 	require 'completion'.on_attach(client)
 
-	-- do lsp mappings
-	vim.fn.nvim_buf_set_keymap(0, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>',
-		{noremap=true, silent=true})
-	vim.fn.nvim_buf_set_keymap(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>',
-		{noremap=true, silent=true})
-	vim.fn.nvim_buf_set_keymap(0, 'n', 'grr', '<cmd>lua vim.lsp.buf.rename()<cr>',
-		{noremap=true, silent=true})
-	vim.fn.nvim_buf_set_keymap(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>',
-		{noremap=true, silent=true})
+	-- lsp mappings
+	u.map('n', 'K',     '<cmd>lua vim.lsp.buf.hover()<cr>')
+	u.map(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>')
+	u.map(0, 'n', 'grr',   '<cmd>lua vim.lsp.buf.rename()<cr>')
+	u.map(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
+	u.map(0, 'n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<cr>')
+	u.map(0, 'n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>')
 
 	-- nnoremap <silent> gD <cmd> lua vim.lsp.buf.declaration()<CR>
 	-- nnoremap <silent> gd <cmd> lua vim.lsp.buf.definition()<CR>
@@ -40,12 +52,27 @@ lsp.gopls.setup{
 }
 
 lsp.sumneko_lua.setup{
-	cmd = { 'lua-language-server' };
 	on_attach = my_attach;
+	cmd = { 'lua-language-server' };
+	settings = {
+		Lua = {
+			runtime = {
+				version = 'LuaJIT',
+			},
+			diagnostics = {
+				globals = {'vim'},
+			},
+			workspace = {
+				library = {
+					[vim.fn.expand('$VIMRUNTIME/lua')] = true,
+					[vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true,
+				}
+			}
+		}
+	},
 }
 
 lsp.rust_analyzer.setup{
-	cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' },
 	on_attach = my_attach,
-
+	cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' },
 }
diff --git a/.vim/lua/plugins/_markdown.lua b/.vim/lua/plugins/_markdown.lua
new file mode 100644
index 0000000..c773d50
--- /dev/null
+++ b/.vim/lua/plugins/_markdown.lua
@@ -0,0 +1,9 @@
+g.vim_markdown_folding_disabled = true
+g.vim_markdown_math = true
+g.vim_markdown_frontmatter = true
+g.vim_markdown_json_frontmatter = true
+g.vim_markdown_toml_frontmatter = true
+g.vim_markdown_folding_level = 2
+g.vim_markdown_strikethrough = true
+g.vim_markdown_auto_insert_bullets = true
+g.vim_markdown_new_list_item_indent = false
diff --git a/.vim/lua/plugins/_signify.lua b/.vim/lua/plugins/_signify.lua
new file mode 100644
index 0000000..a91ecb6
--- /dev/null
+++ b/.vim/lua/plugins/_signify.lua
@@ -0,0 +1,6 @@
+vim.g.signify_sign_change = '~'
+require('utils').map('n', ']h', '<plug>(signify-next-hunk)', {silent=false})
+require('utils').map('n', '[h', '<plug>(signify-prev-hunk)')
+vim.cmd('hi SignifySignChange guibg=NONE ctermbg=NONE')
+vim.cmd('hi SignifySignAdd guibg=NONE ctermbg=NONE')
+vim.cmd('hi SignifySignDelete guibg=NONE ctermbg=NONE')
diff --git a/.vim/lua/plugins/_telescope.lua b/.vim/lua/plugins/_telescope.lua
new file mode 100644
index 0000000..d4f9b89
--- /dev/null
+++ b/.vim/lua/plugins/_telescope.lua
@@ -0,0 +1,99 @@
+-- telescope.nvim et al config
+
+local u = require('utils')
+
+local M = {}
+
+-- TELESCOPE config -- {{{
+require('telescope').setup{
+	defaults = {
+		-- vimgrep_arguments = {
+      -- 'rg',
+      -- '--color=never',
+      -- '--no-heading',
+      -- '--with-filename',
+      -- '--line-number',
+      -- '--column',
+      -- '--smart-case'
+    -- },
+
+		prompt_prefix = ' >',
+		borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'},
+		winblend = 0,
+		preview_cutoff = 120,
+
+		layout_strategy = 'flex',
+		
+		file_previewer   = require('telescope.previewers').vim_buffer_cat_new,
+		grep_previewer   = require('telescope.previewers').vim_buffer_vimgrep_new,
+		qflist_previewer = require('telescope.previewers').vim_buffer_qflist_new,
+
+		extensions = {
+			fzf_writer = {
+				use_highlighter = true,
+				minimum_grep_characters = 4,
+				shorten_path = true,
+			}
+		}
+	}
+}
+-- }}}
+
+-- LOCAL finders -- {{{
+M.wrap = function(opts)
+	opts = opts or {}
+	my_opts = require('telescope.themes').get_dropdown({ width = 110 })
+	return vim.tbl_deep_extend("force", my_opts, opts)
+end
+
+M.live_grep = function()
+	require('telescope').extensions.fzf_writer.staged_grep(M.wrap())
+end
+
+M.repo_search = function()
+	require('telescope').extensions.fzf_writer.files(M.wrap({
+		previewer = false,
+		cwd = require('lspconfig.util').root_pattern('.git')(vim.fn.expand('%:p')),
+	}))
+end
+
+M.wiki = function()
+	require('telescope').extensions.fzf_writer.files(M.wrap({
+		previewer = false,
+		cwd = '~/wiki/',
+	}))
+end
+
+M.devel = function()
+	require('telescope').extensions.fzf_writer.files(M.wrap({
+		previewer = false,
+		cwd = '~/devel/',
+	}))
+end
+-- }}}
+
+-- MAPPINGS -- {{{
+
+u.map('n', ';g', "<cmd>lua require('plugins._telescope').live_grep()<cr>")
+u.map('n', ';r', "<cmd>lua require('plugins._telescope').repo_search()<cr>")
+-- u.map('n', ';w', "<cmd>lua require('plugins._telescope').wiki()<cr>")
+u.map('n', ';d', "<cmd>lua require('plugins._telescope').devel()<cr>")
+
+local mapbuiltin = function(key, fn, previewer)
+	opts = (not previewer and '{ previewer = false }') or '{}'
+	u.map('n', key, "<cmd>lua require('telescope.builtin')."..fn.."(require('plugins._telescope').wrap("..opts.."))<cr>")
+end
+
+mapbuiltin(';f', 'fd', true)
+mapbuiltin(';q', 'quickfix')
+mapbuiltin(';l', 'loclist')
+mapbuiltin(';b', 'buffers')
+mapbuiltin(';t', 'tags')
+mapbuiltin(';lr', 'lsp_references')
+mapbuiltin(';la', 'lsp_code_actions')
+mapbuiltin(';lw', 'lsp_workspace_symbols')
+mapbuiltin(';c', 'command_history')
+
+-- }}}
+
+return M
diff --git a/.vim/lua/conf/treesitter.lua b/.vim/lua/plugins/_treesitter.lua
index fed55e1..ef24286 100644
--- a/.vim/lua/conf/treesitter.lua
+++ b/.vim/lua/plugins/_treesitter.lua
@@ -1,5 +1,5 @@
 
-require 'nvim-treesitter.configs'.setup {
+require('nvim-treesitter.configs').setup {
 	ensure_installed = { "c", "c_sharp", "javascript", "lua", "bash" },
 	highlight = {
 		enable = false,
diff --git a/.vim/lua/plugins/_ultisnips.lua b/.vim/lua/plugins/_ultisnips.lua
new file mode 100644
index 0000000..f2a6f6e
--- /dev/null
+++ b/.vim/lua/plugins/_ultisnips.lua
@@ -0,0 +1,4 @@
+-- vim.g.UltiSnipsListSnippets = "<c-tab>"
+vim.g.UltiSnipsExpandTrigger = "<Tab>"
+vim.g.UltiSnipsJumpForwardTrigger = "<c-n>"
+vim.g.UltiSnipsJumpBackwardTrigger = "<c-p>"
diff --git a/.vim/lua/plugins/_vimtex.lua b/.vim/lua/plugins/_vimtex.lua
new file mode 100644
index 0000000..2a3d550
--- /dev/null
+++ b/.vim/lua/plugins/_vimtex.lua
@@ -0,0 +1,8 @@
+vim.g.tex_flavor = 'latex'
+vim.g.vimtex_compiler_enabled = 1
+vim.g.vimtex_compiler_method = 'tectonic'
+vim.g.vimtex_compiler_tectonic = "{'executable': 'tectonic'}"
+vim.g.vimtex_view_method = 'zathura'
+-- vim.g.vimtex_view_zathura_check_libsynctex = false
+-- vim.g.vimtex_view_use_temp_files = true
+-- vim.g.vimtex_view_forward_search_on_start = false