v0.145.4Internal beta docs

Beta documentation · eXLib v0.145.4. Public release is pending.

The ae-expression Editor

The editor is a Monaco instance — the same engine behind VS Code — configured specifically for the After Effects expression dialect. eXLib registers its own language, ae-expression, rather than reusing or reconfiguring JavaScript, and every intelligence feature in this documentation is custom-built for AE.

A language of its own

Typing gets AE-tuned editing behavior throughout, and every diagnostic, hover, and completion is written against AE's actual object model, not a generic JS one.

Syntax highlighting that means something

A hand-written tokenizer colors the AE dialect meaningfully. AE functions (wiggle, linear), globals (thisComp, thisLayer, value, time), and property accessors (.position, .x, .transform) each get their own color, distinct from ordinary variables, JS keywords, numbers, hex colors (#ff9800), regexes, and template literals.

That distinction is the point: you can scan an expression at a glance and instantly tell an AE built-in from one of your own variables.

i

These screenshots were captured in an earlier beta. Toolbar and Library layouts have since changed; the written instructions on this page describe v0.145.4. See A Tour of the Panel for the current controls.

An expression using wiggle, thisComp.layer accessors, a hex color, and a template literal, each colored distinctly
AE functions, globals, and property accessors each get their own color — distinct from your own variables.

Typing behavior

You don't configure any of this — it's simply how typing feels:

  • Auto-closing pairs — typing {, (, or " inserts the matching closer.
  • JSDoc-aware Enter — pressing Enter inside a /** */ block continues the comment.
  • Comment toggling — // line comments and /* */ block comments.
  • Bracket-based auto-indent — indentation follows your bracket nesting.

Keyboard reliability inside After Effects

After Effects' host environment intercepts or mangles several keystrokes a code editor needs. eXLib puts them back:

  • Select All — ⌘A / Ctrl+A.
  • Forward Delete — AE swallows the keypress, so eXLib reconstructs it.
  • Undo / redo inside the editor — ⌘Z / ⌘⇧Z keep working on the editor text.
  • Double-click on text selects a word instead of triggering a zoom.
  • Mouse-wheel scrolls the editor instead of extending a selection.

Escape closes the topmost open element only — a peek panel, the find bar, a suggestion dropdown, a popover — and never passes through to After Effects.

The command palette

Press ⌃⌘P to open the command palette. It lists every eXLib command by name — not just Monaco's built-in editing commands — each with its current shortcut, and stays in sync with your rebindings.

i

F1 is not bound in eXLib — the palette lives on ⌃⌘P, rebindable in Settings → Shortcuts.

The right-click menu

Right-clicking anywhere in the panel opens a region-aware context menu. It resolves the region under the pointer and offers what actually belongs there: the editor, the tab strip, the rail, a library row, a folder row, empty space, the status-bar pin chip, or a panel fallback so no region is ever menu-less.

Every item renders its real current chord straight from the shortcut registry — a rebind updates the menu automatically — disabled items state why, the destructive item is always last, and amber is reserved for the primary action. From inside the editor, the menu is also how you reach Find & Replace (below), the Dependency Map, and eXLib: Evaluate Selection or Line for the Live Evaluator.

Find & Replace

  • ⌃⌘F opens Monaco's Find widget.
  • ⌃⇧⌘F opens Find & Replace.