Hello all!
~~ TL; DR ~~
Is there any way to mark or annotate a function such that its internals should not be traced, even if "set -x" or "zsh -x" is used?
~~ Research ~~
I've got a handful of functions that get loaded into each script via "source" or (more frequently) "autoload".
In order for the contents of these functions to not pollute the xtrace output, I set the first line of each function to do "set +x" which prevents further tracing. However, the "set +x" itself shows up in the xtrace.
Chapter 9 (functions) doesn't mention anything about tracing at all.
Chapter 16 (options) mentions a few related things, notably SOURCE_TRACE, VERBOSE, and XTRACE, but doesn't have anything like that.
Chapter 17 (builtins) discusses the "functions" builtin and some of the options that are available to it. None of these look relevant.
~~ Misc Notes ~~
I've created a small script[1] that somewhat achieves this effect, with TRAPDEBUG and ZSH_DEBUG_COMMAND -- using funcfiletrace to simply not print any of the lines that come from the file that contains the do-not-want-traced functions -- but I expect there is something simpler. It's similar to xtrace / verbose, but only prints the first line of each statement executed.