diff --git a/hunks/view.js b/hunks/view.js index 6f6f0a5dba92b8f23bb262a8010cb585705648ee..5b0a72e4750453739498c430c0da1e053ab73f88 100644 --- a/hunks/view.js +++ b/hunks/view.js @@ -825,9 +825,9 @@ function View() { // now we wipe, return new Promise(async (resolve, reject) => { // we want to run this down levels, - for(let df of this.defs){ - if(df.type == 'link'){ - if(df.interior()) await df.interior().refresh() + for (let df of this.defs) { + if (df.type == 'link') { + if (df.interior()) await df.interior().refresh() } } // wipe ya docs, and ask yonder manager for a complete description @@ -1059,7 +1059,7 @@ function View() { } let mergeLinkList = (patch, debug) => { - return new Promise((resolve, reject) => { + return new Promise(async (resolve, reject) => { let nh = patch.hunks.length let recursor = async (n) => { // we want to walk the list of outputs in the patch, and reconn. @@ -1081,7 +1081,7 @@ function View() { // here is case to put error handling in the ll, at addlink, // then just ignore the ones we miss ... try { - this.requestAddLinkLikeACaveman(n, op, cn[0], cn[1]) + await this.requestAddLinkLikeACaveman(n, op, cn[0], cn[1]) } catch (err) { console.error('passing by this erroneous link-addition during link-list merging') console.error(err) @@ -1101,18 +1101,30 @@ function View() { this.reinstate = async (system, debug) => { // ensure we are up-to-date w/ current state, await this.refresh() - return new Promise((resolve, reject) => { - mergeHunkList(system, debug).then(() => { - console.log('resolved hunk list, links now') - mergeLinkList(system, debug).then(() => { - console.log('resolved link list, reinstate completes') - resolve() - }).catch((err) => { - reject(err) - }) - }).catch((err) => { + // and and, + this.open = system.open + this.size = system.size + // ok, + return new Promise(async (resolve, reject) => { + try { + await mergeHunkList(system, debug) + await mergeLinkList(system, debug) + for (let s in system.hunks) { + let spec = system.hunks[s] + if (spec.contains) { + // find the context for it (this should be the matched link) + let interior = defs[s].interior() + console.warn('interior', this.defs[s].interior()) + console.warn('def', this.defs[s]) + if (!interior) throw new Error('cannot grab a context for this subsection of the system', spec.contains) + await interior.reinstate(spec.contains) + } + } + resolve() + } catch (err) { + console.error(err) reject(err) - }) + } }) }