# Collapse (hide) code inside a function

I often use structures similar to the "func" below, however I would like to be able to "hide" the function definitions (similar to cell grouping using a group opener). I think an inline cell is the answer but I have had no success in implementing it.

func[this_][arg_] := this =Module[{f, g},
f[x_] := x Sin[x];
g[x_] := x^2 + x + 1;
<|
"x" -> arg,
"f" :> f[this["x"]],
"g" :> g[this["x"]]
|>];