+1 here. I think with the advent of event handlers this becomes a bit more important since triggers and scripts can be placed in tons of different positions in the application.
Just wanted to ping this back up again - with event handlers creating actions for components now, it becomes increasingly hard to track and debug where an action might be coming from and where a query might be triggered.
With a query being autofilled in the event handler when an editor selects "+ New", event handlers can become prone to accidents and result in a lot of misfirings of queries.
I was getting an error in the console log when loading a page and the error refers to a non-existing component. I spent 30 or 40 minutes yesterday trying to track down the location of the refence. I never did find it. Any ideas on how to track down this little gremlin without global code search?
Here is the console.log:
error in computeTemplateStringDependencies txtInvoiceNum.value, SyntaxError: Unexpected token )
at Object.raise (app.e38e6dc35dd640c9453c.js:2)
at Object.unexpected (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseParenAndDistinguishExpression (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseExprAtom (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseExprSubscripts (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseMaybeUnary (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseExprOps (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseMaybeConditional (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseMaybeAssign (app.e38e6dc35dd640c9453c.js:2)
at Object.$.parseExpression (app.e38e6dc35dd640c9453c.js:2)
at Object.W.parseStatement (app.e38e6dc35dd640c9453c.js:2)
at Object.W.parseTopLevel (app.e38e6dc35dd640c9453c.js:2)
at Object.parseTopLevel (app.e38e6dc35dd640c9453c.js:2)
at Object.F.parse (app.e38e6dc35dd640c9453c.js:2)
at Object.parse (app.e38e6dc35dd640c9453c.js:2)
at Object.t.parse (app.e38e6dc35dd640c9453c.js:2)
at o (app.e38e6dc35dd640c9453c.js:2)
at M (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at String.replace (<anonymous>)
at z (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at app.e38e6dc35dd640c9453c.js:2
at app.e38e6dc35dd640c9453c.js:2
at kt.iterate (app.e38e6dc35dd640c9453c.js:2)
at At.iterate._t.iterate (app.e38e6dc35dd640c9453c.js:2)
at _t.At.iterate._t.iterate (app.e38e6dc35dd640c9453c.js:2)
at t.__iterate (app.e38e6dc35dd640c9453c.js:2)
at t.forEach (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at t.Tt [as withMutations] (app.e38e6dc35dd640c9453c.js:2)
at t.map (app.e38e6dc35dd640c9453c.js:2)
at x.updateObject (app.e38e6dc35dd640c9453c.js:2)
at x.updatePlugin (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at app.e38e6dc35dd640c9453c.js:2
at app.e38e6dc35dd640c9453c.js:2
at t.__iterate (app.e38e6dc35dd640c9453c.js:2)
at t.__iterate (app.e38e6dc35dd640c9453c.js:2)
at t.forEach (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at t.Tt [as withMutations] (app.e38e6dc35dd640c9453c.js:2)
at t.map (app.e38e6dc35dd640c9453c.js:2)
at app.e38e6dc35dd640c9453c.js:2
at Generator.next (<anonymous>)
at a (app.e38e6dc35dd640c9453c.js:2)
Hey @bradlymathews & @JoeyKarczewski!
This is a great feature request and makes a lot of sense for tracking bugs down in Retool especially with the introduction (as you mentioned) of event handlers. I'll link this thread to the feature request so we can keep you up to date as our engineers look into adding this!