@@ -33,27 +33,27 @@ function getEmptyVisualLogState(): VisualLogState {
3333 return {
3434 verifierLogState : getEmptyVerifierState ( ) ,
3535 logLines : [ ] ,
36- logLineIdToIdx : new Map ( ) ,
36+ logLineIdxToVisualIdx : new Map ( ) ,
3737 cLines : [ ] ,
38- cLineIdtoIdx : new Map ( ) ,
38+ cLineIdToVisualIdx : new Map ( ) ,
3939 } ;
4040}
4141
4242function getVisualLogState (
4343 verifierLogState : VerifierLogState ,
4444 fullLogView : boolean ,
4545) : VisualLogState {
46- const [ logLines , logLineIdToIdx ] = getVisibleLogLines (
46+ const [ logLines , logLineIdxToVisualIdx ] = getVisibleLogLines (
4747 verifierLogState ,
4848 fullLogView ,
4949 ) ;
50- const [ cLines , cLineIdtoIdx ] = getVisibleCLines ( verifierLogState ) ;
50+ const [ cLines , cLineIdToVisualIdx ] = getVisibleCLines ( verifierLogState ) ;
5151 return {
5252 verifierLogState : verifierLogState ,
5353 logLines,
54- logLineIdToIdx ,
54+ logLineIdxToVisualIdx ,
5555 cLines,
56- cLineIdtoIdx ,
56+ cLineIdToVisualIdx ,
5757 } ;
5858}
5959
@@ -133,12 +133,18 @@ function App() {
133133
134134 const fileInputRef = useRef < HTMLInputElement > ( null ) ;
135135
136- const { verifierLogState, cLines, cLineIdtoIdx, logLines, logLineIdToIdx } =
137- visualLogState ;
136+ const {
137+ verifierLogState,
138+ cLines,
139+ cLineIdToVisualIdx,
140+ logLines,
141+ logLineIdxToVisualIdx,
142+ } = visualLogState ;
138143
139144 const { line : selectedLine , memSlotId : selectedMemSlotId } = selectedState ;
140- const selectedLineIdx = logLineIdToIdx . get ( selectedLine ) || 0 ;
141- const hoveredLineIdx = logLineIdToIdx . get ( hoveredState . line ) || 0 ;
145+ const selectedLineVisualIdx = logLineIdxToVisualIdx . get ( selectedLine ) || 0 ;
146+ const hoveredLineVisualIdx =
147+ logLineIdxToVisualIdx . get ( hoveredState . line ) || 0 ;
142148 const selectedCLine = useMemo ( ( ) => {
143149 let clineId = "" ;
144150 if ( selectedState . cLine ) {
@@ -163,15 +169,15 @@ function App() {
163169 (
164170 nextInsLineId : number ,
165171 nextCLineId : string ,
166- nextInsLineIdx : number ,
167- nextCLineIdx : number ,
172+ nextInsLineVisualIdx : number ,
173+ nextCLineVisualIdx : number ,
168174 memSlotId : string = "" ,
169175 ) => {
170- scrollToLogLine ( nextInsLineIdx , logLines . length ) ;
171- scrollToCLine ( nextCLineIdx , cLines . length ) ;
176+ scrollToLogLine ( nextInsLineVisualIdx , logLines . length ) ;
177+ scrollToCLine ( nextCLineVisualIdx , cLines . length ) ;
172178 setSelectedState ( { line : nextInsLineId , memSlotId, cLine : nextCLineId } ) ;
173179 } ,
174- [ logLines , cLineIdtoIdx ] ,
180+ [ logLines , cLineIdToVisualIdx ] ,
175181 ) ;
176182
177183 const onGotoStart = useCallback ( ( ) => {
@@ -181,7 +187,7 @@ function App() {
181187 const lineId = logLines [ 0 ] . idx ;
182188 const clineId =
183189 verifierLogState . cSourceMap . logLineToCLine . get ( lineId ) || "" ;
184- setSelectedAndScroll ( lineId , "" , 0 , cLineIdtoIdx . get ( clineId ) || 0 ) ;
190+ setSelectedAndScroll ( lineId , "" , 0 , cLineIdToVisualIdx . get ( clineId ) || 0 ) ;
185191 } , [ logLines , verifierLogState ] ) ;
186192
187193 function onGotoEnd ( ) {
@@ -195,7 +201,7 @@ function App() {
195201 lineId ,
196202 "" ,
197203 logLines . length - 1 ,
198- cLineIdtoIdx . get ( clineId ) || 0 ,
204+ cLineIdToVisualIdx . get ( clineId ) || 0 ,
199205 ) ;
200206 }
201207
@@ -210,15 +216,15 @@ function App() {
210216
211217 const onLogToggle = useCallback ( ( ) => {
212218 setfullLogView ( ( prev ) => ! prev ) ;
213- const [ newLogLines , newLogLineIdToIdx ] = getVisibleLogLines (
219+ const [ newLogLines , newLogLineIdToVisualIdx ] = getVisibleLogLines (
214220 verifierLogState ,
215221 ! fullLogView ,
216222 ) ;
217223 setVisualLogState ( ( prev ) => {
218224 return {
219225 ...prev ,
220226 logLines : newLogLines ,
221- logLineIdToIdx : newLogLineIdToIdx ,
227+ logLineIdxToVisualIdx : newLogLineIdToVisualIdx ,
222228 } ;
223229 } ) ;
224230 } , [ fullLogView , verifierLogState ] ) ;
@@ -260,10 +266,11 @@ function App() {
260266 }
261267 e . preventDefault ( ) ;
262268 if ( areCLinesInFocus ) {
263- const currentIdx = cLineIdtoIdx . get ( selectedState . cLine ) || 0 ;
264- let nextIdx = currentIdx + delta ;
265- if ( cLines [ nextIdx ] === "" ) {
266- nextIdx += delta ;
269+ const currentVisibleIdx =
270+ cLineIdToVisualIdx . get ( selectedState . cLine ) || 0 ;
271+ let nextVisibleIdx = currentVisibleIdx + delta ;
272+ if ( cLines [ nextVisibleIdx ] === "" ) {
273+ nextVisibleIdx += delta ;
267274 }
268275 const logLines = verifierLogState . cSourceMap . cLineToLogLines . get (
269276 selectedState . cLine ,
@@ -274,21 +281,26 @@ function App() {
274281 }
275282 setSelectedAndScroll (
276283 logLineId ,
277- cLines [ nextIdx ] ,
278- logLineIdToIdx . get ( logLineId ) || - 1 ,
279- nextIdx ,
284+ cLines [ nextVisibleIdx ] ,
285+ logLineIdxToVisualIdx . get ( logLineId ) || - 1 ,
286+ nextVisibleIdx ,
280287 ) ;
281288 } else {
282- const currInsIdx = logLineIdToIdx . get ( selectedState . line ) || 0 ;
283- let nextInsIdx = siblingInsLine ( logLines , currInsIdx , delta ) ;
284- const logLineId = logLines [ nextInsIdx ] . idx ;
289+ const currInsVisualIdx =
290+ logLineIdxToVisualIdx . get ( selectedState . line ) || 0 ;
291+ let nextInsVisualIdx = siblingInsLine (
292+ logLines ,
293+ currInsVisualIdx ,
294+ delta ,
295+ ) ;
296+ const logLineId = logLines [ nextInsVisualIdx ] . idx ;
285297 const cLineId =
286298 verifierLogState . cSourceMap . logLineToCLine . get ( logLineId ) || "" ;
287299 setSelectedAndScroll (
288300 logLineId ,
289301 "" ,
290- nextInsIdx ,
291- cLineIdtoIdx . get ( cLineId ) || - 1 ,
302+ nextInsVisualIdx ,
303+ cLineIdToVisualIdx . get ( cLineId ) || - 1 ,
292304 ) ;
293305 }
294306 } ;
@@ -301,10 +313,10 @@ function App() {
301313 } , [
302314 logLines ,
303315 cLines ,
304- cLineIdtoIdx ,
316+ cLineIdToVisualIdx ,
305317 selectedState ,
306318 verifierLogState ,
307- logLineIdToIdx ,
319+ logLineIdxToVisualIdx ,
308320 onGotoStart ,
309321 onGotoEnd ,
310322 ] ) ;
@@ -417,14 +429,14 @@ function App() {
417429 setSelectedAndScroll (
418430 firstItem ,
419431 clineId ,
420- logLineIdToIdx . get ( firstItem ) || 0 ,
432+ logLineIdxToVisualIdx . get ( firstItem ) || 0 ,
421433 - 1 ,
422434 ) ;
423435 } else {
424436 setSelectedState ( { line : 0 , memSlotId : "" , cLine : clineId } ) ;
425437 }
426438 } ,
427- [ verifierLogState , logLineIdToIdx , cLineIdtoIdx ] ,
439+ [ verifierLogState , logLineIdxToVisualIdx , cLineIdToVisualIdx ] ,
428440 ) ;
429441
430442 const handleStateRowClick = useCallback (
@@ -473,12 +485,12 @@ function App() {
473485 lineId ,
474486 "" ,
475487 - 1 ,
476- cLineIdtoIdx . get ( clineId ) || - 1 ,
488+ cLineIdToVisualIdx . get ( clineId ) || - 1 ,
477489 memSlotId ,
478490 ) ;
479491 }
480492 } ,
481- [ logLines , verifierLogState , cLineIdtoIdx ] ,
493+ [ logLines , verifierLogState , cLineIdToVisualIdx ] ,
482494 ) ;
483495
484496 const handleLogLinesOver = useCallback (
@@ -604,12 +616,12 @@ function App() {
604616 < div id = "hint" >
605617 < SelectedLineHint
606618 selectedLine = { selectedLine }
607- selectedLineIdx = { selectedLineIdx }
619+ visualIdx = { selectedLineVisualIdx }
608620 lines = { verifierLogState . lines }
609621 />
610622 < HoveredLineHint
611623 hoveredLine = { hoveredState . line }
612- hoveredLineIdx = { hoveredLineIdx }
624+ visibleIdx = { hoveredLineVisualIdx }
613625 lines = { verifierLogState . lines }
614626 />
615627 </ div >
0 commit comments