Skip to content

Search & Query

Search lives in the Documents right dock. It covers three complementary ways to find what matters in a JSON document: instant text search, a visual query builder, and C# LINQ.

Scrolling a 5,000-line config is not a workflow. Search and Query let you ask questions of the document:

  • Where is this SKU?
  • Which enemies have elite true and level above 20?
  • Give me every email-like field under objects.

Results jump into the editor so discovery immediately becomes editing.

Search dock on the Query tab, C# LINQ selected, with property suggestions over a JSON array
Query can be a form or a C# LINQ expression. Suggestions follow the fields in the document.
  • Right dock → Search
  • Edit → Find… (default Cmd+F / Ctrl+F)
  • Edit → Find in Query… (default Cmd+Shift+F / Ctrl+Shift+F)

Shortcuts are configurable in Preferences → Search.

The panel has two top-level modes:

Mode Purpose
Search Fast text find across properties and values
Query Structured filtering via Form or C# LINQ

Search (text)

Type into the find field. Matches show up under RESULTS with a hit count.

Control Behavior
Result list Click a hit to reveal it in the editor
▲ / ▼ Previous / next result
Enter / Shift+Enter Cycle results while the field is focused

Search is case-insensitive over properties and values. Max results and navigation wrap behavior are controlled in Preferences.

Literal first, structure second

Use text Search for literal hunting. Switch to Query when the question is about structure or conditions.

Query → Form

Form is the visual query builder.

  1. Open Query, choose Form
  2. Add conditions with + Add condition
  3. Choose Property, Operator, and value inputs
  4. Combine conditions with AND / OR
  5. Click Run Query

Operators adapt to the selected property's type (equality, contains, array counts, existence, and related checks).

After a successful run, the panel can compact into a summary with an Edit action if Compact editor after successful run is enabled in Preferences.

Query → C# LINQ

C# LINQ is for developers who want expressive filters with familiar C# syntax.

The expression editor includes:

  • Syntax highlighting
  • Completion for LINQ methods and properties
  • Auto-pairing comfort while typing
  • A ? help overlay with guided examples

The cast

Every query starts from one of these roots:

Root Meaning
objects Every JSON object in the document
arrays Every JSON array
values Strings, numbers, booleans, null
nodes Everything

Examples

Filter objects with a score:

objects
    .Where(x => x["score"] > 10)

Combine conditions:

objects
    .Where(x => x["active"] == true && x["score"] >= 5)

Project and limit:

objects
    .Where(x => x.Has("email"))
    .Select(x => x["email"])
    .Take(20)

Default starter template:

objects
    .Where(x => x.Has("name"))

Supported LINQ-style methods in completion include Where, Select, SelectMany, OrderBy, OrderByDescending, Take, Skip, First, FirstOrDefault, Any, and Count.

Click Run Query to execute. If the document changes after a successful run, the UI can indicate that results are stale until you run again.

Valid JSON required

LINQ queries require valid JSON. Fix syntax errors first, then run.

Practical game-data scenario

Given enemies config:

{
  "enemies": [
    { "id": "slime", "level": 2, "elite": false, "zone": "forest" },
    { "id": "wolf", "level": 8, "elite": false, "zone": "forest" },
    { "id": "lich", "level": 25, "elite": true, "zone": "crypt" }
  ]
}
  • Text Search: lich
  • Form Query: elite equals true
  • LINQ:
objects
    .Where(x => x.Has("elite") && x["elite"] == true && x["level"] >= 20)
Setting Effect
Debounce How quickly live Search updates
Max results Caps listed hits
Auto-select first Focuses the first hit automatically
Wrap navigation Cycles past the ends of the list
Query auto-compact Collapses the editor after successful Query runs
Find / Find in Query shortcuts Remappable hotkeys

See Preferences.