@@ -174,6 +174,7 @@ const useReadOnlyCodeFolding = (editor: PrismEditor, ...providers: FoldingRangeP
174174 foldPositions = [ ]
175175 foldedRanges . clear ( )
176176 foldedLines . clear ( )
177+ lines = editor . lines !
177178 value = code = editor . value
178179 lineNumberWidth = Math . ceil ( Math . log10 ( numLines ( code ) ) ) + ".001ch"
179180 const folds : [ number , number ] [ ] = [ ]
@@ -212,36 +213,38 @@ const useReadOnlyCodeFolding = (editor: PrismEditor, ...providers: FoldingRangeP
212213
213214 providerRef . current = providers
214215
215- useLayoutEffect ( ( ) => {
216- editor . extensions . folding = {
217- get fullCode ( ) {
218- return code
219- } ,
220- toggleFold : ( lineNumber , force ) =>
221- ! ! foldPositions [ lineNumber ] &&
222- foldedLines . has ( lineNumber ) != force &&
223- ! toggleFold ( lineNumber ) ! ,
224- updateFolds : ( ) => update ( ) ,
225- }
216+ useLayoutEffect (
217+ useCallback ( ( ) => {
218+ editor . extensions . folding = {
219+ get fullCode ( ) {
220+ return code
221+ } ,
222+ toggleFold : ( lineNumber , force ) =>
223+ ! ! foldPositions [ lineNumber ] &&
224+ foldedLines . has ( lineNumber ) != force &&
225+ ! toggleFold ( lineNumber ) ! ,
226+ updateFolds : ( ) => update ( ) ,
227+ }
226228
227- lines = editor . lines !
228- if ( editor . value ) createFolds ( )
229+ if ( editor . value ) createFolds ( )
229230
230- return ( ) => {
231- delete editor . extensions . folding
232- if ( foldToggles ) {
233- foldToggles . forEach ( ( el , i ) => {
234- el . remove ( )
235- foldPlaceholders [ i ] ?. remove ( )
236- } )
237- }
238- if ( foldedRanges . size ) {
239- foldedRanges . clear ( )
240- foldPositions = [ ]
241- update ( )
231+ return ( ) => {
232+ delete editor . extensions . folding
233+ if ( foldToggles ) {
234+ foldToggles . forEach ( ( el , i ) => {
235+ el . remove ( )
236+ foldPlaceholders [ i ] ?. remove ( )
237+ } )
238+ }
239+ if ( foldedRanges . size ) {
240+ foldedRanges . clear ( )
241+ foldPositions = [ ]
242+ update ( )
243+ }
242244 }
243- }
244- } , [ ] )
245+ } , [ ] ) ,
246+ [ ] ,
247+ )
245248
246249 useLayoutEffect (
247250 useCallback ( ( ) => {
0 commit comments