Repository navigation
[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 callfindCallSiteper(, andfindCallSitere-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'sbuiltin_metadata.json.
Added
-
Pine symbol navigation: definition, references, rename, occurrence highlight. One local index (
src/editor/symbol-index.ts) parses functions / methods, parameters,typeandenumbodies, variables (incl.var/varipand tuple destructuring), loop bindings andimport … as alias, then answers all four features without a Pro API round trip — so they work in Pyodide and offline.F12(orAlt-click) jumps to the declaration,Shift-F12lists every reference in a CodeMirror panel,F2renames the declaration plus its references, and the cursor symbol is highlighted automatically. Scope is indentation-based like Pine, sof(n)andg(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, andtype/enummembers. Also in the command palette. -
Offline PYNE lint parity:
W002andW104.localPreevaluatenow warns on a pre-v5//@versionpragma (W002) and on kwargs Pine v6 removed (W104) —when=onstrategy.*order calls andtransp=on drawing / plot calls (plot*,fill,bgcolor,barcolor,hline,line.*,box.*,label.*,table.*,polyline.*,linefill.*).color.new/color()keep a validtranspand are never flagged. Previously these came only fromPOST /lsp/diagnostics, so Pyodide / offline mode missed them. New settingpreevalV6Kwargs(default on) with a Settings → Editor toggle;preevalVersionWarnnow covers bothW001andW002.
Desktop installers (Tauri 2). CLI tarball, worker bundle, and checksums attach from the Release workflow.