Blog

Zasper 2.0.0

Zasper 2.0.0 gives files and notebooks language servers, searches and replaces across the whole project, exports notebooks, and tightens how a session is kept and checked.

brew upgrade zasper                   # Homebrew
sudo snap refresh zasper              # Snap
conda update zasper -c conda-forge    # conda

Prebuilt binaries are on the Downloads page.

Why 2.0

Zasper’s HTTP and WebSocket API follows semantic versioning, and 2.0.0 changes two details of it, so it is a major release. Both came from moving the browser’s session into a cookie that no script in the page can read. WebSocket routes no longer accept a session token in the URL, where it would end up in logs and browser history, and the always-true protected field is gone from /api/config and /api/info. The app itself needs nothing from you but signing in once. Scripts that talk to Zasper should read Upgrading below.

Language Servers

Diagnostics, completion, hover, go to definition, find references, rename, document symbols, inlay hints and format on save, for Python, Go, JavaScript and TypeScript, Rust, C and C++, R and Julia. Zasper starts a language server you already have installed, and Settings tells you which one it found or how to install one.

Notebooks get them too. IPython magics are masked out so they don’t show up as errors, and imports are resolved against the kernel’s own interpreter, so what the checker knows is what the notebook can import. Language Servers has the details.

Search and Replace

Search in Files looks across the whole project, with replace and a preview of each file’s changes, and it includes what is in editors you haven’t saved yet. It uses ripgrep when it is installed and gives the same answers without it. Inside a notebook, Find and Replace searches the cells and their outputs, and replaces in the cells. Search and Replace covers both.

Notebooks

Python, and the Terminal

Choose a Python interpreter in the top bar, the status bar or Settings, and Run Python File in Terminal with it. The terminal is now a panel below the editor, with Toggle Terminal.

The Editor

The status bar shows and changes a file’s language, indentation and line endings, and .editorconfig files are honoured. Settings add autosave, format on save, rulers, word wrap, whitespace, line numbers, font size, trimming trailing whitespace, a final newline, and Vim or Emacs keys. Go to Line and recent files are in the command palette, and open tabs and recent files are remembered for each project. When a file changes on disk, its editor updates, keeps your unsaved edits, and can compare them with the version on disk.

Safer by Default

Fixes

Upgrading from 1.1.0

Installation explains each one, and the changelog has the full list.