◐ Shell
clean mode source ↗

CodeQue - supercharged multiline code search and replace tool

Structural search using code-like query language

Code search should be easy and accurate.

With CodeQue you can look for complex code patterns flawlessly.

Query

Root:/codeque

Mode:exact

Case:insensitive

<Button size="md" onClick={$$$} >

try$$

</Button>

$$$

$$

Results

<Button

size="md"

onClick={() => redirect('/playground')}

>

try in playground

</Button>

<Button

size="md"

onClick={openVSCodeExtPage}

>

Try CodeQue

</Button>

You don't have to be explicit

Use "include" mode to find similar, instead of exactly matching code.

Actual code can have more properties than the query.

Query

Root:/codeque

Mode:include

Case:sensitive

({

firstName: "John",

lastName: "Doe"

})

Results

({

id: 128,

firstName: "John",

lastName: "Doe",

age: 32

})

({

id: 256,

lastName: "Doe",

firstName: "John",

favColor: 'violet'

})

Find code regardless the formatting

Finding similar code usually does not work due to line breaks and indentation.

CodeQue performs structural comparison of the code, so different formatting is no longer an issue!

Query

Root:/codeque

Mode:exact

Case:sensitive

const result = updateData({

userId: me.id,

data: {

tasks: ['Try CodeQue']

}

})

Whitespaces finally become truly invisible!

Results

const result = updateData({

userId: me.id,

data: { tasks: [

'Try CodeQue'

]}

})

const result =

updateData({ userId: me.id,

data: {

tasks: ['Try CodeQue']}

})

Noticed some duplicated code?

Feels like the block you refactored recently keeps popping in new places?

Using multiline code search you can actually make sure you found all the occurrences.

Query

Root:/codeque

Mode:include

Case:sensitive

const user = await db.users.find($$$)

const { emailConfirmed } = user

if (!emailConfirmed) {

throw new Error("User inactive")

}

By knowing all of them you can secure the pattern from being copy-pasted again.

Results

async function getActiveUserById(id) {

const user = await db.users.find({ id })

const { emailConfirmed } = user

if (!emailConfirmed) {

throw new Error("User inactive")

}

return user

}

const user = await db.users.find({ id : userId })

const { emailConfirmed } = user

if (!emailConfirmed) {

throw new Error("User inactive")

}

return user.tasks.filter(({ done }) => !done)

Explore codebase to make better refactoring decisions

It is useful to know how exactly the code is used before starting the refactor.

Instead of going through everything manually just write some query.

CodeQue search makes it easy to discover every specific usage of an API.

Query

Root:/codeque

Mode:include

Case:sensitive

MessageService.send({

transport: 'sms'

})

Regardless it is a function call or a React component.

Enforce coding standards tailored to your codebase

I believe developers communicates through the code.

There is no better guideline than warning visible right in the code editor.

You can comment existing code, but how to add comments in the future code?

Sometimes existing eslint rules are not enough.

Use CodeQue to restrict undesired code constructs specific to your codebase.

It saves time and intellectual fatigue during code reviews.

Query

Root:/codeque

Mode:include

Case:sensitive

TrackingX.trackEvent()

No more "Don't use X", "We are migrating from Y to Z".

Invalid Code

const handleClick = () => {

TrackingX.trackEvent("Clicked Product Card")

router.redirect("/product/" + id)

}

Valid Code

{

const { taskId } = await db.tasks.create({

title,

userId

})

TrackingY.log({

name: "Task Created By",

taskId,

userId

})

return { taskId }

}

Want to learn more or ask a Question?

Just DM me on X (Twitter)!