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:
- Functions (highest priority)
- Classes
- Modules
- Variables and Constants
- 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:
| Key | Action |
|---|---|
| Tab | Trigger completions or indent |
| Shift + Tab | Show signature help or outdent |
| Escape | Exit edit mode |
| Ctrl/Cmd + Enter | Run cell in place |
| Shift + Enter | Run cell and select next |
See the keyboard shortcuts reference for a complete list.