From 7c61e64fa8267a7397eb807a9ddbac332cc82c0f Mon Sep 17 00:00:00 2001 From: Matei Adriel Date: Tue, 1 Nov 2022 16:48:18 +0100 Subject: [PATCH] Many changes --- dotfiles/neovim/ftplugin/tex.lua | 13 +-- dotfiles/neovim/lua/my/init.lua | 1 - dotfiles/neovim/lua/my/keymaps.lua | 2 +- dotfiles/neovim/lua/my/plugins/fzf-lua.lua | 18 ---- dotfiles/neovim/lua/my/plugins/init.lua | 9 +- dotfiles/neovim/lua/my/plugins/luasnip.lua | 10 +++ dotfiles/neovim/lua/my/plugins/vimtex.lua | 4 +- dotfiles/neovim/lua/my/snippets.lua | 8 -- dotfiles/vscode-snippets/package.json | 6 ++ .../vscode-snippets/snippets/latex/core.json | 75 ++++++----------- .../snippets/latex/explain.json | 77 ++++++++++++++++++ img/22-10-19-16-13-24.png | Bin 0 -> 27916 bytes modules/applications/default.nix | 1 + modules/applications/hamachi.nix | 7 ++ 14 files changed, 139 insertions(+), 92 deletions(-) delete mode 100644 dotfiles/neovim/lua/my/plugins/fzf-lua.lua delete mode 100644 dotfiles/neovim/lua/my/snippets.lua create mode 100644 dotfiles/vscode-snippets/snippets/latex/explain.json create mode 100644 img/22-10-19-16-13-24.png create mode 100644 modules/applications/hamachi.nix diff --git a/dotfiles/neovim/ftplugin/tex.lua b/dotfiles/neovim/ftplugin/tex.lua index 80d5bc1..7f504f4 100644 --- a/dotfiles/neovim/ftplugin/tex.lua +++ b/dotfiles/neovim/ftplugin/tex.lua @@ -25,7 +25,7 @@ local abbreviations = { { "nuls", "\\varnothing" }, -- Other fancy symvols - { "ints", "\\mathbb{I}" }, + { "ints", "\\mathbb{Z}" }, { "nats", "\\mathbb{N}" }, { "rats", "\\mathbb{Q}" }, { "rrea", "\\mathbb{R}" }, @@ -44,6 +44,7 @@ local abbreviations = { { "etn", "^{-}" }, { "ett", "^{t}" }, { "tmat", "^{T}" }, -- Tranpose of a matrix + { "cmat", "^{*}" }, -- Conjugate of a matrix { "etp", "^{+}" }, -- Subscripts @@ -108,19 +109,21 @@ local abbreviations = { { "div", "\\|" }, { "ndiv", "\\not\\|\\:" }, - -- words { "rref", "reduced row echalon form" }, - { "thrf", "therefore" } } local abolishAbbreviations = { { "eg{va,ve,p}{,s}", "eigen{value,vector,pair}{}" }, { "ib{p,s}", "integration by {parts,substitution}" }, - { "mx{,s}", "matri{x,ces}" } + { "mx{,s}", "matri{x,ces}" }, + { "thrf", "therefore" } } A.manyLocalAbbr(abbreviations) AB.abolishMany(abolishAbbreviations) -vim.keymap.set("n", "lc", "VimtexCompile", { desc = "Compile current buffer using vimtex" }) +vim.keymap.set("n", "lc", "VimtexCompile", { + desc = "Compile current buffer using vimtex", + buffer = true +}) diff --git a/dotfiles/neovim/lua/my/init.lua b/dotfiles/neovim/lua/my/init.lua index 9e1af05..bb1cd33 100644 --- a/dotfiles/neovim/lua/my/init.lua +++ b/dotfiles/neovim/lua/my/init.lua @@ -7,7 +7,6 @@ function M.setup() require("my.theme").setup() require("my.options").setup() require('my.keymaps').setup() - require('my.snippets').setup() require('my.plugins').setup() require("telescope.extensions.unicode").setupAbbreviations() end diff --git a/dotfiles/neovim/lua/my/keymaps.lua b/dotfiles/neovim/lua/my/keymaps.lua index b712aa4..044b583 100644 --- a/dotfiles/neovim/lua/my/keymaps.lua +++ b/dotfiles/neovim/lua/my/keymaps.lua @@ -77,7 +77,7 @@ function M.setup() name = "Go to" }, r = { - name = "Rename / Replace" + name = "Rename / Replace / Reload" }, [""] = { name = "Easymotion" diff --git a/dotfiles/neovim/lua/my/plugins/fzf-lua.lua b/dotfiles/neovim/lua/my/plugins/fzf-lua.lua deleted file mode 100644 index 2248a0b..0000000 --- a/dotfiles/neovim/lua/my/plugins/fzf-lua.lua +++ /dev/null @@ -1,18 +0,0 @@ -local M = {} - -local bindings = { - -- Open files with control + P - files = "", - -- See diagnostics with space + d - lsp_document_diagnostics = "d", - lsp_workspace_diagnostics = "D" -} - -function M.setup() - for action, keybind in pairs(bindings) do - -- Maps the keybind to the action - vim.keymap.set('n', keybind, require('fzf-lua')[action]) - end -end - -return M diff --git a/dotfiles/neovim/lua/my/plugins/init.lua b/dotfiles/neovim/lua/my/plugins/init.lua index 121ad4b..33b9232 100644 --- a/dotfiles/neovim/lua/my/plugins/init.lua +++ b/dotfiles/neovim/lua/my/plugins/init.lua @@ -6,6 +6,11 @@ function M.setup() require('fidget').setup() require('dressing').setup() + require("my.plugins.easymotion").setup() + require("my.plugins.autopairs").setup() + require("my.plugins.telescope").setup() + require("my.plugins.surround").setup() + env.vscode.unless(function() env.firevim.unless(function() require("presence"):setup({}) @@ -35,10 +40,6 @@ function M.setup() require("my.plugins.paperplanes").setup() end - require("my.plugins.easymotion").setup() - require("my.plugins.autopairs").setup() - require("my.plugins.telescope").setup() - require("my.plugins.surround").setup() require("my.plugins.hydra").setup() require("my.plugins.clipboard-image").setup() diff --git a/dotfiles/neovim/lua/my/plugins/luasnip.lua b/dotfiles/neovim/lua/my/plugins/luasnip.lua index 54c0b57..7c1fdb0 100644 --- a/dotfiles/neovim/lua/my/plugins/luasnip.lua +++ b/dotfiles/neovim/lua/my/plugins/luasnip.lua @@ -1,6 +1,10 @@ local M = {} local luasnip = require("luasnip") +local function reload() + require("luasnip.loaders.from_vscode").lazy_load() +end + function M.setup() vim.keymap.set("i", "", function() if luasnip.jumpable(1) then @@ -12,6 +16,12 @@ function M.setup() vim.keymap.set("i", "", function() luasnip.jump(-1) end) + + vim.keymap.set("n", "rs", reload, { + desc = "Reload luasnip snippets" + }) + + reload() end return M diff --git a/dotfiles/neovim/lua/my/plugins/vimtex.lua b/dotfiles/neovim/lua/my/plugins/vimtex.lua index dd5ced5..242f53d 100644 --- a/dotfiles/neovim/lua/my/plugins/vimtex.lua +++ b/dotfiles/neovim/lua/my/plugins/vimtex.lua @@ -1,12 +1,10 @@ -local global = require("my.helpers").global - local M = {} function M.setup() -- Viewer method vim.g.vimtex_view_method = "zathura" vim.g.Tex_DefaultTargetFormat = "pdf" - vim.g.vimtex_fold_enabled = 1 + vim.g.vimtex_fold_enabled = 0 vim.g.vimtex_compiler_latexmk = { options = { "-pdf", "-shell-escape", "-verbose", "-file-line-error", "-synctex=1", "-interaction=nonstopmode" diff --git a/dotfiles/neovim/lua/my/snippets.lua b/dotfiles/neovim/lua/my/snippets.lua deleted file mode 100644 index 9cb0ac5..0000000 --- a/dotfiles/neovim/lua/my/snippets.lua +++ /dev/null @@ -1,8 +0,0 @@ -local M = {} - -function M.setup() - -- require("luasnip").config.setup({ enable_autosnippets = false }) - require("luasnip.loaders.from_vscode").lazy_load() -end - -return M diff --git a/dotfiles/vscode-snippets/package.json b/dotfiles/vscode-snippets/package.json index a77b117..7735f3c 100644 --- a/dotfiles/vscode-snippets/package.json +++ b/dotfiles/vscode-snippets/package.json @@ -32,6 +32,12 @@ ], "path": "./snippets/latex/core.json" }, + { + "language": [ + "tex" + ], + "path": "./snippets/latex/explain.json" + }, { "language": [ "lua" diff --git a/dotfiles/vscode-snippets/snippets/latex/core.json b/dotfiles/vscode-snippets/snippets/latex/core.json index b820ce5..f7d7a1d 100644 --- a/dotfiles/vscode-snippets/snippets/latex/core.json +++ b/dotfiles/vscode-snippets/snippets/latex/core.json @@ -12,10 +12,7 @@ "Absolute value": { "prefix": "abs", "description": "Absolute values", - "body": "|$1|$0", - "luasnip": { - "autotrigger": true - } + "body": "|$1|$0" }, "Lemma": { "prefix": "lemma", @@ -59,26 +56,27 @@ "Subscript": { "prefix": "ss", "description": "Subscript", - "body": "_{$1}$0", - "luasnip": { - "autotrigger": true - } + "body": "_{$1}$0" }, "Exponent": { "prefix": "ee", "description": "Exponent", - "body": "^{$1}$0", - "luasnip": { - "autotrigger": true - } + "body": "^{$1}$0" }, "Nth derivative": { "prefix": "dd", "description": "Nth derivative", - "body": "^{($1)}$0", - "luasnip": { - "autotrigger": true - } + "body": "^{($1)}$0" + }, + "Overline": { + "prefix": "ol", + "description": "Overline", + "body": "\\overline{$1}$0" + }, + "Z Mod": { + "prefix": "zmod", + "description": "The set of Z/nZ", + "body": "\\mathbb{Z}/$1\\mathbb{Z}$0" }, "Section": { "prefix": "section", @@ -133,74 +131,47 @@ "Sigma sum": { "prefix": "bsum", "description": "Create a sum using sigma notation", - "body": "\\sum_{$1 = $2}^{$3}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\sum_{$1 = $2}^{$3}$0" }, "Pi product": { "prefix": "bproduct", "description": "Create a produt using pi notation", - "body": "\\prod_{$1 = $2}^{$3}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\prod_{$1 = $2}^{$3}$0" }, "Fraction": { "prefix": "frac", "description": "Create a fraction", - "body": "\\frac{$1}{$2}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\frac{$1}{$2}$0" }, "Choose": { "prefix": "binom", "description": "Create a (n choose k) thingy", - "body": "\\binom{$1}{$2}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\binom{$1}{$2}$0" }, "Limit": { "prefix": "lim", "description": "Create a limit", - "body": "\\lim _{$1 \\to $2}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\lim _{$1 \\to $2}$0" }, "Limit to infinity": { "prefix": "ilim", "description": "Create a limit as a variable goes to infinity", - "body": "\\lim _{$1 \\to \\infty}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\lim _{$1 \\to \\infty}$0" }, "Limit to negative infinity": { "prefix": "nlim", "description": "Create a limit as a variable goes to negative infinity", - "body": "\\lim _{$1 \\to -\\infty}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\lim _{$1 \\to -\\infty}$0" }, "Limit to zero": { "prefix": "zlim", "description": "Create a limit as a variable goes to 0", - "body": "\\lim _{$1 \\to 0}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\lim _{$1 \\to 0}$0" }, "Sqrt": { "prefix": "sqrt", "description": "Create a sqrt", - "body": "\\sqrt[$1]{$2}$0", - "luasnip": { - "autotrigger": true - } + "body": "\\sqrt[$1]{$2}$0" }, "Sin": { "prefix": "sin", diff --git a/dotfiles/vscode-snippets/snippets/latex/explain.json b/dotfiles/vscode-snippets/snippets/latex/explain.json new file mode 100644 index 0000000..0f0582a --- /dev/null +++ b/dotfiles/vscode-snippets/snippets/latex/explain.json @@ -0,0 +1,77 @@ +{ + "Text explanation in math mode": { + "prefix": "texpl", + "description": "Explain a step using text in math mode", + "body": "&& \\text{($1)}$0" + }, + "Explanation in math mode": { + "prefix": "expl", + "description": "Explain a step in math mode", + "body": "&& ($1) $0" + }, + "Explain division": { + "prefix": "exdiv", + "description": "Explain a division inside an equation", + "body": "&& \\left(\\frac{\\square}{$1}\\right)$0" + }, + "Explain fraction": { + "prefix": "exfract", + "description": "Explain a step which wraps both sides of an equation by a fraction", + "body": "&& \\left(\\frac{$1}{$2} \\right)$0" + }, + "Explain right multiplication": { + "prefix": "exmul", + "description": "Explain a right multiplication inside an equation", + "body": "&& \\left(\\square \\cdot $1 \\right)$0" + }, + "Explain left multiplication": { + "prefix": "exlmul", + "description": "Explain a left multiplication inside an equation", + "body": "&& \\left($1 \\cdot \\square\\right)$0" + }, + "Explain differentiation": { + "prefix": "exdiff", + "description": "Explain a step which differentiates both sides of an equation", + "body": "&& \\left( \\frac{d \\square} {d $1} \\right)$0" + }, + "Explain integration": { + "prefix": "exint", + "description": "Explain a step which integrates both sides of an equation", + "body": "&& \\left(\\int \\square d$1 \\right)$0" + }, + "Explain definite integration": { + "prefix": "exdint", + "description": "Explain a step which applies a definite integral to both sides of an equation", + "body": "&& \\left(\\int _{$1} ^{$2} \\square d$3 \\right)$0" + }, + "Explain addition": { + "prefix": "exadd", + "description": "Explain a step which adds to both sides of an equation", + "body": "&& \\left( \\square + $1 \\right)$0" + }, + "Explain subtraction": { + "prefix": "exsub", + "description": "Explain a step which subtracts from both sides of an equation", + "body": "&& \\left( \\square - $1 \\right)$0" + }, + "Explain negation": { + "prefix": "exneg", + "description": "Explain a step which negates both sides of an equation", + "body": "&& (- \\square )$0" + }, + "Explain power": { + "prefix": "expow", + "description": "Explain a step which raises both sides of an equation to a given power", + "body": "&& \\left( \\square ^{$1} \\right)$0" + }, + "Explain exponentiation": { + "prefix": "exexp", + "description": "Explain a step which raises a given value to both sides of an equation", + "body": "&& \\left( $1 ^{\\square} \\right)$0" + }, + "Explain natural logarithm": { + "prefix": "exln", + "description": "Explain a step which applies the ln function to both sides of an equation", + "body": "&& \\left( \\ln $1 \\right)$0" + } +} diff --git a/img/22-10-19-16-13-24.png b/img/22-10-19-16-13-24.png new file mode 100644 index 0000000000000000000000000000000000000000..9273abfcbafaa568ab89f93babc15a0ccf3f3ff3 GIT binary patch literal 27916 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 dBgk%EUbV+tv1qrYG7IBh4fPM{