@@ -11,7 +11,7 @@ import EditInspect, { EditState, RecoverFunc } from '../model/editInspect'
11
11
import { DocumentChange , Env , GlobPattern } from '../types'
12
12
import * as errors from '../util/errors'
13
13
import { isFile , isParentFolder , normalizeFilePath , statAsync } from '../util/fs'
14
- import { crypto , fs , glob , minimatch , os , path , promisify } from '../util/node'
14
+ import { crypto , fs , glob , minimatch , os , path } from '../util/node'
15
15
import { CancellationToken , CancellationTokenSource , Emitter , Event , TextDocumentSaveReason } from '../util/protocol'
16
16
import { byteIndex } from '../util/string'
17
17
import { createFilteredChanges , getConfirmAnnotations , toDocumentChanges } from '../util/textedit'
@@ -371,20 +371,26 @@ export default class Files {
371
371
curr = path . dirname ( curr )
372
372
}
373
373
fs . mkdirSync ( dir , { recursive : true } )
374
- recovers && recovers . push ( ( ) => {
375
- fs . rmSync ( folder , { force : true , recursive : true } )
376
- } )
374
+ if ( Array . isArray ( recovers ) ) {
375
+ recovers . push ( ( ) => {
376
+ fs . rmSync ( folder , { force : true , recursive : true } )
377
+ } )
378
+ }
377
379
}
378
380
fs . writeFileSync ( filepath , '' , 'utf8' )
379
- recovers && recovers . push ( ( ) => {
380
- fs . rmSync ( filepath , { force : true , recursive : true } )
381
- } )
381
+ if ( Array . isArray ( recovers ) ) {
382
+ recovers . push ( ( ) => {
383
+ fs . rmSync ( filepath , { force : true , recursive : true } )
384
+ } )
385
+ }
382
386
let doc = await this . loadResource ( filepath )
383
387
let bufnr = doc . bufnr
384
- recovers && recovers . push ( ( ) => {
385
- void events . fire ( 'BufUnload' , [ bufnr ] )
386
- return nvim . command ( `silent! bd! ${ bufnr } ` )
387
- } )
388
+ if ( Array . isArray ( recovers ) ) {
389
+ recovers . push ( ( ) => {
390
+ void events . fire ( 'BufUnload' , [ bufnr ] )
391
+ return nvim . command ( `silent! bd! ${ bufnr } ` )
392
+ } )
393
+ }
388
394
this . _onDidCreateFiles . fire ( { files : [ URI . file ( filepath ) ] } )
389
395
}
390
396
}
@@ -407,9 +413,11 @@ export default class Files {
407
413
if ( bufnr ) {
408
414
void events . fire ( 'BufUnload' , [ bufnr ] )
409
415
await this . nvim . command ( `silent! bwipeout ${ bufnr } ` )
410
- recovers && recovers . push ( ( ) => {
411
- return this . loadResource ( uri . toString ( ) )
412
- } )
416
+ if ( Array . isArray ( recovers ) ) {
417
+ recovers . push ( ( ) => {
418
+ return this . loadResource ( uri . toString ( ) )
419
+ } )
420
+ }
413
421
}
414
422
}
415
423
let folder = path . join ( os . tmpdir ( ) , 'coc-' + process . pid )
@@ -419,23 +427,29 @@ export default class Files {
419
427
let dest = path . join ( folder , md5 )
420
428
let dir = path . dirname ( filepath )
421
429
fs . renameSync ( filepath , dest )
422
- recovers && recovers . push ( async ( ) => {
423
- fs . mkdirSync ( dir , { recursive : true } )
424
- fs . renameSync ( dest , filepath )
425
- } )
430
+ if ( Array . isArray ( recovers ) ) {
431
+ recovers . push ( async ( ) => {
432
+ fs . mkdirSync ( dir , { recursive : true } )
433
+ fs . renameSync ( dest , filepath )
434
+ } )
435
+ }
426
436
} else if ( isDir ) {
427
437
fs . rmdirSync ( filepath )
428
- recovers && recovers . push ( ( ) => {
429
- fs . mkdirSync ( filepath )
430
- } )
438
+ if ( Array . isArray ( recovers ) ) {
439
+ recovers . push ( ( ) => {
440
+ fs . mkdirSync ( filepath )
441
+ } )
442
+ }
431
443
} else {
432
444
let dest = path . join ( folder , md5 )
433
445
let dir = path . dirname ( filepath )
434
446
fs . renameSync ( filepath , dest )
435
- recovers && recovers . push ( ( ) => {
436
- fs . mkdirSync ( dir , { recursive : true } )
437
- fs . renameSync ( dest , filepath )
438
- } )
447
+ if ( Array . isArray ( recovers ) ) {
448
+ recovers . push ( ( ) => {
449
+ fs . mkdirSync ( dir , { recursive : true } )
450
+ fs . renameSync ( dest , filepath )
451
+ } )
452
+ }
439
453
}
440
454
this . _onDidDeleteFiles . fire ( { files : [ uri ] } )
441
455
}
@@ -471,9 +485,11 @@ export default class Files {
471
485
}
472
486
fs . renameSync ( oldPath , newPath )
473
487
}
474
- recovers && recovers . push ( ( ) => {
475
- return this . renameFile ( newPath , oldPath , { skipEvent : true } )
476
- } )
488
+ if ( Array . isArray ( recovers ) ) {
489
+ recovers . push ( ( ) => {
490
+ return this . renameFile ( newPath , oldPath , { skipEvent : true } )
491
+ } )
492
+ }
477
493
if ( ! opts . skipEvent ) this . _onDidRenameFiles . fire ( { files : [ file ] } )
478
494
}
479
495
0 commit comments