Skip to content

Instantly share code, notes, and snippets.

@eduardoarandah
eduardoarandah / markdown_to_pdf.lua
Created June 3, 2026 13:12
neovim print to pdf using markdown
-- markdown_to_pdf.lua
-- Generates a PDF from a Markdown file in two steps:
-- 1. Markdown -> HTML with pandoc (with embedded CSS)
-- 2. HTML -> PDF with Google Chrome in headless mode
-- The intermediate HTML file is deleted at the end, leaving only the PDF.
--
-- Usage: :MarkdownToPDF (converts the current buffer)
-- :MarkdownToPDF path.md (converts the given file)
--
-- Requires Neovim 0.10+ (uses vim.system).
@eduardoarandah
eduardoarandah / commands.lua
Created May 12, 2026 22:03
Neovim command to Get work hours, read from markdown files in ./logs folder
-- Get work hours, read from markdown files in ./logs folder
--
-- example:
---
-- ---
-- date: 2026-05-12
-- summary: some work summary here
-- hours: 3
-- ---
-- usage: :GetWorkLogInLogFolder
@eduardoarandah
eduardoarandah / ascii_box.lua
Created April 26, 2026 20:24
neovim generate an ascii table around text
-- use:
--
-- require("ascii_box").setup()
local M = {}
--- Genera una tabla ASCII alrededor del texto dado
--- @param lines string[] Lista de líneas de texto
--- @return string[] Líneas con la caja ASCII
function M.make_box(lines)
-- Encontrar el ancho máximo para que todas las líneas encajen
@eduardoarandah
eduardoarandah / textcase.lua
Created April 22, 2026 17:42
neovim text-case improved
----------------------------------------------------
-- text-case
-- https://github.com/johmsalas/text-case.nvim#setup
----------------------------------------------------
vim.pack.add({
"https://github.com/johmsalas/text-case.nvim",
})
local textcase = require("textcase")
@eduardoarandah
eduardoarandah / tldr.lua
Last active April 16, 2026 17:52
Neovim plugin to browse tldr-pages cheatsheets directly from the editor
-- tldr.lua
-- Neovim command to browse tldr-pages cheatsheets directly from the editor
-- save as ~/.config/nvim/lua/tldr.lua
-- load with: require("tldr")
-- Commands:
-- :Tldr
-- :Tldr <topic>
vim.api.nvim_create_user_command("Tldr", function(args)
if args.args == "" then
@eduardoarandah
eduardoarandah / cht_sh.lua
Last active April 16, 2026 17:52
Neovim plugin to query cht.sh cheatsheets from within the editor
-- cht_sh.lua
-- Neovim command to query cht.sh cheatsheets from within the editor
-- save as ~/.config/nvim/lua/cht_sh.lua
-- load with: require("cht_sh")
-- Commands:
-- :Cht
-- :Cht <topic>
vim.api.nvim_create_user_command("Cht", function(args)
if args.args == "" then
@eduardoarandah
eduardoarandah / auto_calculate.lua
Last active March 12, 2026 23:33
Shows math expression results as virtual text at the end of each line.
-- save in lua/auto_calculate.lua
-- load in your init file with `require("auto_calculate")`
-- Shows math expression results as virtual text at the end of each line.
-- Works in markdown files.
--
-- Example:
-- "2 * (20 + 1)" → displays "= 42"
-- "- 100 / 3" → displays "= 33.333333" (markdown list item)
-- "3 + cos(3)" → displays "= 2.0100075" (using sandboxed math functions)
-- "hello world" → no virtual text (not a math expression)
@eduardoarandah
eduardoarandah / init.lua
Created February 22, 2026 19:09
automate window movement with hammerspoon
-- automatically reload configuration on change
hs.loadSpoon("ReloadConfiguration")
spoon.ReloadConfiguration:start()
-- cmd + alt + v types the clipboard contents as keystrokes
hs.hotkey.bind({ "cmd", "alt" }, "V", function()
hs.eventtap.keyStrokes(hs.pasteboard.getContents())
end)
-- move windows like Rectangle app using https://www.hammerspoon.org/Spoons/WindowHalfsAndThirds.html
@eduardoarandah
eduardoarandah / real_estate.lua
Created February 12, 2026 13:19
neovim plugin to visualize which keys you have free in your keymaps
-- real-estate.nvim
-- Plugin para visualizar qué teclas están ocupadas/libres en tus keymaps
local M = {}
--------------------------------------------------------------------------------
-- LAYOUTS: Distribución de teclas por modo
-- Cada fila es un string, las teclas especiales van entre < >
--------------------------------------------------------------------------------
M.layouts = {
@eduardoarandah
eduardoarandah / context.lua
Created February 4, 2026 23:14
Neovim commands to simplify context creation in markdown files
-----------------------------------------------------------------
-- Neovim commands to simplify context creation in markdown files
--
-- Save as: lua/context.lua
--
-- How to use: require("_context").setup()
--
-----------------------------------------------------------------
local M = {}