From e46159a94c38a429e65e850f7c47bef22d6e5fa1 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Mon, 12 Aug 2024 10:32:44 +0100 Subject: [PATCH] Add a new snippet to generate `run` file contents --- lua/opdavies/snippets/ft/bash.lua | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lua/opdavies/snippets/ft/bash.lua diff --git a/lua/opdavies/snippets/ft/bash.lua b/lua/opdavies/snippets/ft/bash.lua new file mode 100644 index 0000000..4859a80 --- /dev/null +++ b/lua/opdavies/snippets/ft/bash.lua @@ -0,0 +1,31 @@ +local ls = require "luasnip" + +local fmta = require("luasnip.extras.fmt").fmta + +return { + run = fmta( + [=[ + #!/usr/bin/env bash + + set -o errexit + set -o nounset + set -o pipefail + + function help { + printf "%s <> [args]\n\nTasks:\n" "${0}" + + compgen -A function | grep -v "^_" | cat -n + + printf "\nExtended help:\n Each task has comments for general usage\n" + } + + # Include any local tasks. + # https://stackoverflow.com/a/6659698 + [[ -e "${BASH_SOURCE%/*}/run.local" ]] && source "${BASH_SOURCE%/*}/run.local" + + TIMEFORMAT="Task completed in %3lR" + time "${@:-help}" + ]=], + {} + ), +}