Skip to content

Editor

Nexis includes a full code editor built on CodeMirror 6, sharing the window with your terminal so you can edit and run without switching apps.

A TypeScript file in the editor, with breadcrumbs and the minimap.

Syntax highlighting covers TS/JS, Rust, Python, HTML/CSS, JSON/JSONC, Markdown, Go, C/C++, Java, C#, PHP, Ruby, SQL dialects, YAML, TOML, Shell/Bash, and Dockerfile.

  • Inline autocomplete — context-aware completions with a configurable provider and model.
  • Diff approval — AI-proposed edits are shown as per-hunk diffs; approve or reject each change individually. Nothing is written until you say so.
  • Agent checkpoints — each agent change can create a Git-backed checkpoint that reverts only that turn without disturbing unrelated work.
  • Semantic symbol rename (F2) — LSP-powered rename across the project when a language server is running, so only true references change. When no server is available, it falls back to a word-boundary find/replace with a preview dialog.
  • LSP refactorings (Ctrl+Shift+R) — extract function and inline variable via language-server code actions. Every affected open tab reloads instantly.
  • Breadcrumbs — file path plus symbol crumbs at the top of the editor.
  • Symbol outline — a file-level function/class/variable tree in the sidebar.
  • Spotlight (Ctrl/Cmd+P, or the title-bar search button) — finds files and commands. At rest it is a compact pill of recent files; type and it widens into results plus a live preview (image thumbnails, a small code window, text excerpts, file details). Subsequence ranking means mtx finds modules/terminal/index.ts. Opening a result uses the explorer’s routing, so images open in the image viewer and markdown in its preview.
  • Find and replace across the project — workspace-wide regex search with per-file preview and confirmation.
Spotlight ranks by subsequence, so "mtx" finds modules/terminal/index.ts.
  • Code minimap with line-type coloring, click-to-scroll, and a viewport indicator.
  • Vim mode.
  • Inline linting — real-time syntax error markers (Lezer-based) for JS/TS, Python, Rust, Go, JSON, HTML, CSS, and Markdown.
  • Formatting — Prettier, rustfmt, clang-format, black, gofmt, and more; configurable per language, on save or with Shift+Alt+F.
  • Code folding — by indent, region comments, and language constructs.
  • Word wrap — per-file and global toggles.
  • Snippet library — tab-stop snippets scoped by language.
  • Run current file — execute via a configured command, with output captured in a terminal tab.
  • Markdown preview — right-click a .md file → Open Preview. Its Edit button opens the rich editor (Documents pack).
  • Jupyter notebook viewer — right-click any .ipynb to open a static viewer for code, markdown, stream, and error outputs. It does not run cells.
Markdown preview, with the Edit button that opens the rich editor.

The Documents pack (Settings → Features → Documents) adds rich-text editing for .md, .markdown and .docx files, in its own window with a filterable file list and a strip of open documents.

The Documents window: workspace documents on the left, the rich editor on the right.
flowchart TD
  O["Open a document"] --> T{"type"}
  T -->|".md"| MC{"frontmatter, raw HTML,<br/>footnotes or reference links?"}
  MC -->|yes| RO["Read-only, with a banner"]
  MC -->|no| ED["Rich editor"]
  T -->|".docx"| SC["Scan for what a rebuild would lose<br/>headers/footers · comments · tracked changes …"]
  SC --> IM["Import body via mammoth<br/>schema doubles as sanitizer"]
  IM --> ED
  ED --> S["Save"]
  S -->|markdown| B["Byte-for-byte for plain markdown"]
  S -->|docx| RB["File is rebuilt, not edited in place"]
  ED --> PDF["Export PDF<br/>Minimal · Professional · Modern · A4/Letter<br/>rendered locally (WASM)"]
  • Plain markdown saves back byte for byte; tables keep their cells.
  • Word files are rebuilt on save, so Nexis warns up front about anything the rebuild would drop.
  • PDF export runs locally; linked images are written as alt text and URL rather than fetched.
  • Limitations: document tabs aren’t restored after a restart, an open document doesn’t reload when the file changes on disk, and PDF export is toolbar-only.

The editor and explorer update from a native filesystem watcher as files change on disk, so external tools and the AI stay reflected without polling.