From aa883fbe22d526075cdc233ed19427a9a3922471 Mon Sep 17 00:00:00 2001 From: punkfairie <23287005+punkfairie@users.noreply.github.com> Date: Sat, 24 Feb 2024 10:39:03 -0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(nvim):=20Add=20divider=20comme?= =?UTF-8?q?nt=20snippets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/nvim/lua/config/autocmds.lua | 11 +++++++++++ .config/nvim/lua/snippets/fish.lua | 4 ++++ .config/nvim/lua/snippets/helpers.lua | 21 +++++++++++++++++++++ .config/nvim/lua/snippets/lua.lua | 8 ++++++++ 4 files changed, 44 insertions(+) create mode 100644 .config/nvim/lua/snippets/helpers.lua create mode 100644 .config/nvim/lua/snippets/lua.lua diff --git a/.config/nvim/lua/config/autocmds.lua b/.config/nvim/lua/config/autocmds.lua index 27e9e06..e0251cb 100644 --- a/.config/nvim/lua/config/autocmds.lua +++ b/.config/nvim/lua/config/autocmds.lua @@ -1,3 +1,14 @@ -- Autocmds are automatically loaded on the VeryLazy event -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua -- Add any additional autocmds here + +-- Open help window in a vertical split to the right. +vim.api.nvim_create_autocmd("BufWinEnter", { + group = vim.api.nvim_create_augroup("help_window_right", {}), + pattern = { "*.txt" }, + callback = function() + if vim.o.filetype == "help" then + vim.cmd.wincmd("L") + end + end, +}) diff --git a/.config/nvim/lua/snippets/fish.lua b/.config/nvim/lua/snippets/fish.lua index 12c875f..5dedef3 100644 --- a/.config/nvim/lua/snippets/fish.lua +++ b/.config/nvim/lua/snippets/fish.lua @@ -2,9 +2,13 @@ local ls = require("luasnip") local s = ls.snippet local t = ls.text_node local i = ls.insert_node +local f = ls.function_node local fmt = require("luasnip.extras.fmt").fmt +local fill = require("snippets.helpers").fill return { + s({ trig = "dc", desc = "divider comment" }, f(fill, {}, { user_args = { "#% -" } })), + s({ trig = "#!", desc = "shebang" }, t("#!/usr/bin/env fish")), s( diff --git a/.config/nvim/lua/snippets/helpers.lua b/.config/nvim/lua/snippets/helpers.lua new file mode 100644 index 0000000..30992fb --- /dev/null +++ b/.config/nvim/lua/snippets/helpers.lua @@ -0,0 +1,21 @@ +local M = {} + +M.fill = function(_, _, args) + local chars = {} + + for str in string.gmatch(args, "([^%%]+)") do + table.insert(chars, str) + end + + local snip = chars[1] + + local _, c = unpack(vim.api.nvim_win_get_cursor(0)) + + while #snip < (vim.bo.tw - c - 1) do + snip = snip .. chars[2] + end + + return snip +end + +return M diff --git a/.config/nvim/lua/snippets/lua.lua b/.config/nvim/lua/snippets/lua.lua new file mode 100644 index 0000000..99364e0 --- /dev/null +++ b/.config/nvim/lua/snippets/lua.lua @@ -0,0 +1,8 @@ +local ls = require("luasnip") +local s = ls.snippet +local f = ls.function_node +local fill = require("snippets.helpers").fill + +return { + s({ trig = "dc", desc = "divider comment" }, f(fill, {}, { user_args = { "--% --" } })), +}