Skip to content

AXIS v2.27.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Nov 01:22
· 56 commits to main since this release
d6a3f09

[2.27.0] — 2026-11-01

Changed

  • Pre-eval call scanning is single-pass (O(n) instead of O(n²)). scanAllCallSites (src/editor/pine-call-params.ts) used to call findCallSite per (, and findCallSite re-scanned from offset 0 — so idle pre-eval stalled for seconds on real scripts (measured ~2.9 s at 2 000 lines, ~22 s at 4 000). Open parens are now stacked and each call is parsed when its closer is reached. Same source, both lint passes on: 5.9 s → 43 ms at 2 000 lines and 22.3 s → 120 ms at 4 000. Unclosed calls are skipped (mid-edit input is not linted).

  • Vendored PYNE wheel bumped to pynescript-0.6.28. PYNE 0.6.27 / 0.6.28 only touch the VS Code extension and the version string, so the Python runtime, compiler, and language server are identical to 0.6.26; the wheel, the three hard-coded /vendor/ paths, and the engine docs now agree. The builtins catalog (src/editor/data/pyne-builtins.json, 941 entries) is byte-identical to PYNE's builtin_metadata.json.

Added

  • Pine symbol navigation: definition, references, rename, occurrence highlight. One local index (src/editor/symbol-index.ts) parses functions / methods, parameters, type and enum bodies, variables (incl. var / varip and tuple destructuring), loop bindings and import … as alias, then answers all four features without a Pro API round trip — so they work in Pyodide and offline. F12 (or Alt-click) jumps to the declaration, Shift-F12 lists every reference in a CodeMirror panel, F2 renames the declaration plus its references, and the cursor symbol is highlighted automatically. Scope is indentation-based like Pine, so f(n) and g(n) resolve separately and a parameter rename stays inside its function. Rename refuses builtins, builtin namespaces, keywords, invalid identifiers, names that would collide or shadow in an affected scope, and type / enum members. Also in the command palette.

  • Offline PYNE lint parity: W002 and W104. localPreevaluate now warns on a pre-v5 //@version pragma (W002) and on kwargs Pine v6 removed (W104) — when= on strategy.* order calls and transp= on drawing / plot calls (plot*, fill, bgcolor, barcolor, hline, line.*, box.*, label.*, table.*, polyline.*, linefill.*). color.new / color() keep a valid transp and are never flagged. Previously these came only from POST /lsp/diagnostics, so Pyodide / offline mode missed them. New setting preevalV6Kwargs (default on) with a Settings → Editor toggle; preevalVersionWarn now covers both W001 and W002.


Desktop installers (Tauri 2). CLI tarball, worker bundle, and checksums attach from the Release workflow.