Skip to content

Finder

The Finder (Ctrl+F) allows you to create dynamic Tables by querying for glyphs.

Finder UI and results

This is especially useful if, for example, you're looking for all instances of the Python logo in Nerd Fonts. You can type in a query like :cat nf & python, then copy your design across all the matched glyphs.

Finder after querying for python

Query Language

Warning

The query language is experimental (a.k.a. scuffed and subject to change).

The Finder has a rudimentary query language that internally transpiles to a SQLite statement.

query:;:u:cat:cat;:block:block;:page:page;<phrase><string>&|!()

Phrases

% _ Wildcards
  • % matches zero or more of any character.
  • _ matches one of any character.

You can escape these with \, which treats them as normal characters.

Phrases are one of the query language's search primitives. If a word in the query isn't a special keyword, then it's a phrase.

The transpiler joins consecutive phrases with OR, so the query just some words will return the combined results of just, some, and words.

Strings

In addition to phrases, the query language also features strings, denoted by wrapping with ". This is useful if you want to search using a term that would otherwise get broken up by the transpiler. The transpiler treats the contents of strings as one phrase; strings and phrases are interchangeable.

You can escape " and \ inside strings with \.

; and SQL-Like

By default, the transpiler wraps phrases and strings with % -- i.e. column LIKE '%<phrase>%' ESCAPE '\' in SQLite. But there are also keywords followed by ; that won't wrap their subsequent phrases/strings. For example, test and :; %test% are equivalent queries.

:cat

Filters any matching Unicode character categories. Has a SQL-LIKE variant.

bited has a character category NF for Nerd Font characters. This isn't an official Unicode category, but is nevertheless included for easy querying of Nerd Fonts.

Example: :cat cc

:block

Filters any matching Unicode blocks. Has a SQL-LIKE variant.

Example: :cat latin

:page

Filters any matching bited codepages. Has a SQL-LIKE variant.

Example: :page dyalog

:u

Filters any characters that match the specified hex codepoint or range of hex codepoints. Individual hex codepoints can have % _ wildcards. Codepoint ranges follow the format <hex>-<hex>, where <hex> is a valid hex number.

Example: :u 00A_, :u a0-ffff

& | !

Logical AND, OR, and NOT, respectively.

By default, the transpiler will join consecutive queries with AND -- e.g. :block some words :page other words and :block some words & :page other words are equivalent queries. Explicitly including & becomes necessary when you want to join a keyword sequence with a separate phrase, like in :block some words & a separate phrase.

( )

By default, AND takes higher precedence than OR -- e.g. a & b | c & d is equivalent to (a & b) | c & d. For more fine-grained control over this precedence, you can wrap queries with ( ), like a & (b | c) & d.

The transpiler is also nice enough to let you unbalance your parentheses. If you write a | b) & c & (d, the transpiler will process it as (a | b) & c & (d).