diff --git a/etc/soft/nvim/template/sh.vim b/etc/soft/nvim/template/sh.vim old mode 100644 new mode 100755 index 0dc3fd0..a29712e --- a/etc/soft/nvim/template/sh.vim +++ b/etc/soft/nvim/template/sh.vim @@ -1,5 +1,28 @@ -#!/bin/bash +#!/usr/bin/env bash #Создан: TIMESTAMP #Изменён: TIMESTAMP +set -e +set -o errtrace +trap stacktrace ERR + +\unalias -a + +IFS=$' \t\n' + +function stacktrace () { + [ -n "$TRACED" ] && return + + local depth=${#FUNCNAME[@]} + + for ((i=1; i < "$depth"; i++)); do + printf '%*scall at %s:%s: %s()\n' "$i" '' \ + "${BASH_SOURCE[$i]}" \ + "${BASH_LINENO[$((i-1))]}" \ + "${FUNCNAME[$i]}" + done + + TRACED=true +} +