nvim

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 09f62ddc948116243b604bc8366628195f6ed415
parent 37a2fd801c1468fcf6f86d7dd852c97713a858df
Author: Andrew <andrewlaack1@gmail.com>
Date:   Wed, 27 Nov 2024 21:05:41 -0600

Did some stuff

Diffstat:
ALuaSnip/tex.lua | 119+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlua/core/keymaps.lua | 46++++++++++++++++++++++++++++++++++++++++++++--
Mlua/core/plugins.lua | 26++++++++++++++++++++++++--
Mplugin/packer_compiled.lua | 5+++++
4 files changed, 192 insertions(+), 4 deletions(-)

diff --git a/LuaSnip/tex.lua b/LuaSnip/tex.lua @@ -0,0 +1,119 @@ +local ls = require("luasnip") +local s = ls.snippet +local sn = ls.snippet_node +local t = ls.text_node +local i = ls.insert_node +local f = ls.function_node +local d = ls.dynamic_node +local fmt = require("luasnip.extras.fmt").fmt +local fmta = require("luasnip.extras.fmt").fmta +local rep = require("luasnip.extras").rep + +return { + require("luasnip").snippet( + { + trig=";beginHW", + dscr="Autotriggered snippet to replace ;beginHW with a default document setup.", + snippetType="autosnippet", + regTrig=false, + priority=100, + }, + { + t({ +"\\documentclass[12pt, letterpaper]{article}", +"\\usepackage{enumitem}", +"\\usepackage{graphicx}", +"\\author{Andrew Laack}", +"\\title{TITLE}", +"\\begin{document}", +"\\maketitle{}", +"\\section{FIRST SECTION}", +"\\end{document}", + } + ), + } + ), + + require("luasnip").snippet( + { + trig=";alphaList", + dscr="Autotriggered snippet to replace ;alphaList with a alphabetical list", + snippetType="autosnippet", + regTrig=false, + priority=100, + }, + { + t({ + "\\begin{enumerate}[label=\\alph*)]", + " \\item", + " \\item", + " \\item", + "\\end{enumerate}", + } + ), + } + ), + require("luasnip").snippet( + { + trig=";numList", + dscr="Autotriggered snippet to replace ;numList with number list", + snippetType="autosnippet", + regTrig=false, + priority=100, + }, + { + t({ + "\\begin{enumerate}", + " \\item", + " \\item", + " \\item", + "\\end{enumerate}", + } + ), + } + ), + + + +require("luasnip").snippet( + { + trig=";question", + dscr="Autotriggered snippet to expand ;question to a question in tex with bold unindented question and three bullets.", + snippetType="autosnippet", + regTrig=false, + priority=100, + }, + { + t({ + "\\noindent\\textbf{}", + "\\begin{itemize}", + " \\item", + " \\item", + " \\item", + "\\end{itemize}", + } + ), + } + ), + + + require("luasnip").snippet( + { + trig=";bulletList", + dscr="Autotriggered snippet to expand ;bullets to a bulleted list.", + snippetType="autosnippet", + regTrig=false, + priority=100, + }, + { + t({ + "\\begin{itemize}", + " \\item", + " \\item", + " \\item", + "\\end{itemize}" + } + ), + } + ), +} diff --git a/lua/core/keymaps.lua b/lua/core/keymaps.lua @@ -32,6 +32,9 @@ vim.api.nvim_set_keymap( ) vim.cmd("autocmd TermOpen * startinsert") +-- Exit out of terminal mode +vim.api.nvim_set_keymap("t", "<C-r>", "<C-\\><C-n>", { noremap = true, silent = true }) + -- Open netrw @@ -42,13 +45,13 @@ vim.keymap.set('n', '<Leader>s', function() vim.o.spell = not vim.o.spell end, { desc = 'Toggle spell checking' }) --- Exit out of terminal mode --- vim.api.nvim_set_keymap("t", "<C-r>", "<C-\\><C-n>", { noremap = true, silent = true }) -- Splitting setttings vim.o.splitbelow = true vim.o.splitright = true vim.o.relativenumber = true +vim.o.ignorecase = true +vim.o.smartcase = true vim.o.statuscolumn = "%s %l %r" -- config @@ -62,3 +65,42 @@ vim.keymap.set("n", "<leader>b<Left>", ":bp<CR>", { noremap = true, silent = tru -- Ctrl+Backspace to delete the previous word (same as browser... sorry, not sorry) vim.keymap.set('i', '<C-h>', '<C-w>', { noremap = true, silent = true }) +-- Define how to use snippets +vim.cmd[[ +imap <silent><expr> <C-y> luasnip#expand_or_jumpable() ? '<Plug>luasnip-expand-or-jump' : '<Tab>' +smap <silent><expr> <C-n> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>' + +imap <silent><expr> <C-p> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' +smap <silent><expr> <C-p> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' +]] + +-- pounce config +vim.keymap.set("n", "s", ":Pounce <CR>", { noremap = true, silent = true }) -- b + Left Arrow for previous buffer + +-- Fix highlight colors + + +-- Set custom highlight groups + +-- Set custom highlight groups for Pounce with Catppuccin colors +local highlights = { + PounceGap = { bold = true, fg = "#cdd6f4", bg = "#45475a" }, -- this is the space intra line selections + PounceAcceptBest = { bold = true, fg = "#000000", bg = "#89dceb" }, -- standard selection cap letter + PounceAccept = { bold = true, fg = "#000000", bg = "#7287fd" }, -- standard selection cap letter + PounceMatch = { bold = true, fg = "#cdd6f4", bg = "#585b70" }, -- matching text +} + +for group, opts in pairs(highlights) do + vim.api.nvim_set_hl(0, group, opts) +end + + +-- Map C-Right to w +vim.api.nvim_set_keymap('n', '<C-Right>', 'w', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', '<C-Right>', 'w', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('i', '<C-Right>', '<C-o>w', { noremap = true, silent = true }) + +-- Map C-Left to b +vim.api.nvim_set_keymap('n', '<C-Left>', 'b', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', '<C-Left>', 'b', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('i', '<C-Left>', '<C-o>b', { noremap = true, silent = true }) diff --git a/lua/core/plugins.lua b/lua/core/plugins.lua @@ -15,6 +15,21 @@ local packer_bootstrap = ensure_packer() return require("packer").startup(function(use) use("wbthomason/packer.nvim") + + use('L3MON4D3/LuaSnip') + require("luasnip.loaders.from_lua").load({paths = "~/.config/nvim/LuaSnip/"}) + + +-- Somewhere in your Neovim startup, e.g. init.lua +require("luasnip").config.set_config({ -- Setting LuaSnip config + + -- Enable autotriggered snippets + enable_autosnippets = true, + + -- Use Tab (or some other key if you prefer) to trigger visual selection + store_selection_keys = "<C-m>", +}) + -- tex compile features use("lervag/vimtex") @@ -85,6 +100,13 @@ return require("packer").startup(function(use) }, }) + use('rlane/pounce.nvim') + require'pounce'.setup{ + accept_keys = "TNSERIOADHFUYWPMVXZCGBJKLQ", + accept_best_key = "<enter>", + multi_window = true, + debug = false, + } use({ "kylechui/nvim-surround", tag = "*", -- Use for stability; omit to use `main` branch for the latest features @@ -97,7 +119,6 @@ return require("packer").startup(function(use) require("packer").sync() end - -- nvim-cmp configuration for C-p and C-n local cmp = require('cmp') cmp.setup({ @@ -113,9 +134,10 @@ cmp.setup({ ['<C-Space>'] = cmp.mapping.complete(), -- Trigger completion menu }, sources = cmp.config.sources({ - { name = 'nvim_lsp' }, { name = 'luasnip' }, + { name = 'nvim_lsp' }, }), + }) end) diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua @@ -162,6 +162,11 @@ _G.packer_plugins = { path = "/home/andrew/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" }, + ["pounce.nvim"] = { + loaded = true, + path = "/home/andrew/.local/share/nvim/site/pack/packer/start/pounce.nvim", + url = "https://github.com/rlane/pounce.nvim" + }, ["telescope.nvim"] = { loaded = true, path = "/home/andrew/.local/share/nvim/site/pack/packer/start/telescope.nvim",