From ffd6fac63333b6cad5a1dd096f5fd2b0f9567d66 Mon Sep 17 00:00:00 2001 From: Jannik Donker Date: Wed, 29 Apr 2026 12:55:53 +0200 Subject: [PATCH] added codesnap --- lua/plugins.lua | 52 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/lua/plugins.lua b/lua/plugins.lua index 0424a4e..cc677a9 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -24,6 +24,7 @@ vim.pack.add({ { src = "https://github.com/folke/trouble.nvim" }, { src = "https://github.com/nvim-neotest/nvim-nio" }, { src = "https://github.com/rcarriga/nvim-dap-ui" }, + { src = "https://github.com/michaelrommel/nvim-silicon" }, }) pcall(vim.cmd.colorscheme, "gruvbox") @@ -59,6 +60,54 @@ require("render-markdown").setup({ inline = { highlight = "RenderMarkdownCode" }, }) +local silicon_bg = { + typescript = "#1e3a5f", + javascript = "#5c4a1a", + java = "#5c2a1a", + svelte = "#5c1f0a", + css = "#1f3a5c", + python = "#1a3556", + haskell = "#3d1f5c", + c = "#2a3a4d", + cpp = "#2a4d3d", + swift = "#5c3a1a", + lua = "#1f1f5c", + markdown = "#3a2e1f", + tex = "#3a2e1f", + typst = "#3a2e1f", + toml = "#2e2e2e", + yaml = "#2e2e2e", + conf = "#2e2e2e", + ini = "#2e2e2e", + json = "#2e2e2e", +} + +require("nvim-silicon").setup({ + font = "JetBrainsMono Nerd Font=16", + theme = "gruvbox-dark", + pad_horiz = 60, + pad_vert = 50, + shadow_color = "#0a0a0a", + shadow_blur_radius = 10, + no_round_corner = true, + output = function() + return vim.fn.expand("~/Desktop/silicon_") + .. os.date("!%Y%m%dT%H%M%SZ") .. ".png" + end, + window_title = function() + return vim.fn.fnamemodify(vim.api.nvim_buf_get_name(0), ":t") + end, +}) +local function silicon_shot(to_clipboard) + local s = require("nvim-silicon") + s.options.background = silicon_bg[vim.bo.filetype] or "#1d2021" + if to_clipboard then s.clip() else s.file() end +end +vim.keymap.set("x", "cc", function() silicon_shot(true) end, + { desc = "Silicon copy" }) +vim.keymap.set("x", "cs", function() silicon_shot(false) end, + { desc = "Silicon save" }) + require("lualine").setup({ options = { theme = "gruvbox_dark" } }) require("blink.cmp").setup({ keymap = { preset = "super-tab" } }) @@ -86,7 +135,8 @@ vim.api.nvim_create_autocmd("FileType", { -- TS textobjects local tso = require("nvim-treesitter-textobjects.select") local textobj = { af = "@function.outer", ["if"] = "@function.inner", - ac = "@class.outer", ic = "@class.inner" } + ac = "@class.outer", ic = "@class.inner", + al = "@loop.outer", il = "@loop.inner" } for lhs, query in pairs(textobj) do vim.keymap.set({ "x", "o" }, lhs, function() tso.select_textobject(query, "textobjects") end)