Features

Monaco Editor

VS Code's powerful editor with Jupyter-aware intelligence.

Overview

Thesis uses Monaco Editor (the same editor that powers VS Code) for code cells. It's integrated with Jupyter kernels to provide intelligent features like autocomplete, signature help, and hover documentation.

The editor is configured in apps/frontend/components/code-editor/code-editor.tsx with sensible defaults:

  • Minimap disabled for cleaner notebook experience
  • Monaco/Menlo monospace font at 12px
  • Tab size of 2 spaces
  • Automatic layout adjustment
  • Line numbers enabled

Autocomplete

Intelligent code completion powered by the Jupyter kernel's introspection capabilities.

Trigger characters:

  • . - Member access
  • [ - Index/key access
  • ( - Function calls

Smart sorting by type:

  1. Functions (highest priority)
  2. Classes
  3. Modules
  4. Variables and Constants
  5. Private members (lowest priority)

Press Tab to trigger completions when the cursor is after a symbol.

Signature Help

Shows function signatures and parameter information as you type.

Trigger characters:

  • ( - Opening parenthesis
  • , - Parameter separator

Features:

  • Active parameter highlighting
  • Nested structure awareness
  • Docstring extraction

Press Shift + Tab to manually trigger parameter hints.

Hover Documentation

Hover over any symbol to see its documentation. The hover provider fetches detailed information from the kernel including:

  • Function/class signatures
  • Brief description from docstring
  • First 10 lines of full documentation

Hover delay is set to 300ms for a responsive but not intrusive experience.

Keybindings

Code cells have special keybindings configured in apps/frontend/components/notebook/code-cell.tsx:

KeyAction
TabTrigger completions or indent
Shift + TabShow signature help or outdent
EscapeExit edit mode
Ctrl/Cmd + EnterRun cell in place
Shift + EnterRun cell and select next

See the keyboard shortcuts reference for a complete list.