feat(editor): suggest declared array locals in array-name autocomplete

The flow-array-names datalist (used by the export-CSV node columns and the
legacy accumulate/clear nodes) was sourced only from array names already
referenced by other nodes, so a freshly declared array local would not appear
as an autocomplete suggestion until it was typed somewhere. Seed the datalist
with declared array statevars first, then node-referenced names.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Martino Ferrari
2026-06-24 14:08:11 +02:00
parent cb4e81beb2
commit 05b06d64a4
+7 -3
View File
@@ -577,9 +577,13 @@ export default function LogicEditor({ graph, onChange, widgets = [], statevars,
// Array names already referenced by accumulate/export/clear nodes, offered as // Array names already referenced by accumulate/export/clear nodes, offered as
// autocomplete suggestions so the same array is reused across nodes. // autocomplete suggestions so the same array is reused across nodes.
const arrayNames = Array.from(new Set( // Suggestions for the array-name autocomplete (export columns, accumulate,
nodes.map(n => n.params.array).filter((a): a is string => !!a) // clear): declared array locals first, then any names already referenced by
)); // nodes (covers legacy/in-flight names not yet declared).
const arrayNames = Array.from(new Set([
...(statevars ?? []).filter(v => v.type === 'array').map(v => v.name),
...nodes.map(n => n.params.array).filter((a): a is string => !!a),
]));
// Append a {ds:name} reference into a node's expression field. // Append a {ds:name} reference into a node's expression field.
function insertRef(id: string, field: string, ds: string, sig: string) { function insertRef(id: string, field: string, ds: string, sig: string) {