Global Code Search

I would love to be able to search all of code in an app. Whether in an event (onRowClicked), dynamic property (DisableWhen) or in any of the queries.

I could not remember where I was setting a particular value and it took me 5 minutes to find it. A search would have told me where in a few seconds.

3 Likes

+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.

1 Like

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.

1 Like

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)
1 Like

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! :slight_smile:

1 Like

Hey y'all, sorry for the delay from this initial post but we've now added application code search! Introducing Code Search

1 Like