@@ -61,11 +61,15 @@ var (
61
61
HiddenFileColor string
62
62
63
63
// temp
64
+ ShowHiddenFiles bool
65
+ ShowFiles bool
66
+ ShowDirs bool
64
67
tstring string
65
68
tint int
66
69
tbool bool
67
70
terror error
68
71
Few * Window
72
+ SaveOnReturn bool
69
73
70
74
mode = 0
71
75
)
@@ -77,11 +81,18 @@ func InitFiler() {
77
81
FileColor = colors ["Folder.FileColor" ]
78
82
FolderColor = colors ["Folder.FolderColor" ]
79
83
HiddenFileColor = colors ["Folder.HiddenFileColor" ]
84
+ //modes
80
85
ModeText = [... ]string {
81
86
colors ["Modes.Normal" ]+ " NORMAL " + AirLineText + " " ,
82
87
colors ["Modes.Insert" ]+ " INSERT " + AirLineText + " " ,
83
88
colors ["Modes.NewTree" ]+ " NEWTREE " + AirLineText + " " ,
84
89
}
90
+ // read cfg
91
+ SaveOnReturn = RCfgB ("SaveOnReturn" )
92
+ ShowHiddenFiles = RCfgB ("ShowHiddenFiles" )
93
+ ShowFiles = RCfgB ("ShowFiles" )
94
+ ShowDirs = RCfgB ("ShowDirs" )
95
+ // make window
85
96
Few = MakeWin (
86
97
"Filer/Editor Window" ,
87
98
stdout , stdin ,
@@ -311,6 +322,9 @@ func Reader (c []string, filename string) (bool) {
311
322
}
312
323
case "backspace" , "^H" :
313
324
ClearAll ()
325
+ if SaveOnReturn {
326
+ WriteFile (filename , retab (strings .Join (c , "\n " )))
327
+ }
314
328
return false
315
329
case ("space" ):
316
330
ClearAllAirLine ()
@@ -326,6 +340,9 @@ func Reader (c []string, filename string) (bool) {
326
340
if fcan (tstring ) {
327
341
ClearAll ()
328
342
if (fopen (tstring )) {
343
+ if SaveOnReturn {
344
+ WriteFile (filename , retab (strings .Join (c , "\n " )))
345
+ }
329
346
return true
330
347
}
331
348
} else {
@@ -547,29 +564,23 @@ func Reader (c []string, filename string) (bool) {
547
564
print ("\033 [1 q" ) // block
548
565
}
549
566
}
550
- clear ()
551
- // reset cursor type
552
- print ("\033 [1 q" ) // blink block
553
- return true
554
567
}
555
568
556
569
//TODO: wrap or shift when dir > win.LenY
570
+ //TODO: r[emove] file
557
571
//FOLDER
558
572
func Folder ( folder string ) (bool ) {
559
573
// dir mode
560
574
mode = 2
561
575
// set cursor type
562
576
HideCursor ()
563
- FolderAirLine (folder , "no git yet" )
577
+ FolderAirLine (folder , "git not loaded yet" )
564
578
565
579
var (
566
580
dir []string
567
581
Cdir []string
568
582
fl = flist (folder )
569
583
git string
570
- ShowHiddenFiles bool
571
- ShowFiles bool
572
- ShowDirs bool
573
584
k string
574
585
ld int
575
586
i int
@@ -580,9 +591,6 @@ func Folder ( folder string ) (bool) {
580
591
mark = colors ["Folder.Mark" ]+ "*" + colors ["Text" ]
581
592
582
593
git = GetGs (folder [6 :])
583
- ShowHiddenFiles = RCfgB ("ShowHiddenFiles" )
584
- ShowFiles = RCfgB ("ShowFiles" )
585
- ShowDirs = RCfgB ("ShowDirs" )
586
594
587
595
Cdir = FilterFolder (fl ,
588
596
ShowHiddenFiles , ShowFiles , ShowDirs , false ,
@@ -607,8 +615,9 @@ func Folder ( folder string ) (bool) {
607
615
wprint (Few , i , 0 , "\033 [2K" )
608
616
}
609
617
618
+ // only load once (no need to update for now)
619
+ FolderAirLine (folder , git )
610
620
for k != "backspace" && k != "^H" {
611
- FolderAirLine (folder , git )
612
621
for i = 0 ;i < ld ;i ++ {
613
622
if i < ld {
614
623
wprint (Few , i , 0 , "\033 [2K" )
@@ -648,6 +657,9 @@ func Folder ( folder string ) (bool) {
648
657
} else if fopen (folder + dir [y ]) {
649
658
return true
650
659
}
660
+ ClearAirLine ()
661
+ mode = 2
662
+ FolderAirLine (folder , git )
651
663
HideCursor ()
652
664
case ("q" ):
653
665
return true
0 commit comments