Skip to content

Commit 5c82604

Browse files
committed
SaveOnReturn: save file when \b
1 parent a711c77 commit 5c82604

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

config/cfg

+1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ colorfile:default
22
ShowHiddenFiles:false
33
ShowDirs:true
44
ShowFiles:true
5+
SaveOnReturn:true
56

filer.go

+24-12
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,15 @@ var (
6161
HiddenFileColor string
6262

6363
// temp
64+
ShowHiddenFiles bool
65+
ShowFiles bool
66+
ShowDirs bool
6467
tstring string
6568
tint int
6669
tbool bool
6770
terror error
6871
Few *Window
72+
SaveOnReturn bool
6973

7074
mode = 0
7175
)
@@ -77,11 +81,18 @@ func InitFiler() {
7781
FileColor = colors["Folder.FileColor"]
7882
FolderColor = colors["Folder.FolderColor"]
7983
HiddenFileColor = colors["Folder.HiddenFileColor"]
84+
//modes
8085
ModeText = [...]string{
8186
colors["Modes.Normal"]+" NORMAL "+AirLineText+" ",
8287
colors["Modes.Insert"]+" INSERT "+AirLineText+" ",
8388
colors["Modes.NewTree"]+" NEWTREE "+AirLineText+" ",
8489
}
90+
// read cfg
91+
SaveOnReturn = RCfgB("SaveOnReturn")
92+
ShowHiddenFiles = RCfgB("ShowHiddenFiles")
93+
ShowFiles = RCfgB("ShowFiles")
94+
ShowDirs = RCfgB("ShowDirs")
95+
// make window
8596
Few = MakeWin(
8697
"Filer/Editor Window",
8798
stdout, stdin,
@@ -311,6 +322,9 @@ func Reader (c []string, filename string) (bool) {
311322
}
312323
case "backspace", "^H":
313324
ClearAll()
325+
if SaveOnReturn {
326+
WriteFile(filename, retab(strings.Join(c, "\n")))
327+
}
314328
return false
315329
case ("space"):
316330
ClearAllAirLine()
@@ -326,6 +340,9 @@ func Reader (c []string, filename string) (bool) {
326340
if fcan(tstring) {
327341
ClearAll()
328342
if (fopen(tstring)) {
343+
if SaveOnReturn {
344+
WriteFile(filename, retab(strings.Join(c, "\n")))
345+
}
329346
return true
330347
}
331348
} else {
@@ -547,29 +564,23 @@ func Reader (c []string, filename string) (bool) {
547564
print("\033[1 q") // block
548565
}
549566
}
550-
clear()
551-
// reset cursor type
552-
print("\033[1 q") // blink block
553-
return true
554567
}
555568

556569
//TODO: wrap or shift when dir > win.LenY
570+
//TODO: r[emove] file
557571
//FOLDER
558572
func Folder ( folder string ) (bool) {
559573
// dir mode
560574
mode = 2
561575
// set cursor type
562576
HideCursor()
563-
FolderAirLine(folder, "no git yet")
577+
FolderAirLine(folder, "git not loaded yet")
564578

565579
var (
566580
dir []string
567581
Cdir []string
568582
fl = flist(folder)
569583
git string
570-
ShowHiddenFiles bool
571-
ShowFiles bool
572-
ShowDirs bool
573584
k string
574585
ld int
575586
i int
@@ -580,9 +591,6 @@ func Folder ( folder string ) (bool) {
580591
mark = colors["Folder.Mark"]+"*"+colors["Text"]
581592

582593
git = GetGs(folder[6:])
583-
ShowHiddenFiles = RCfgB("ShowHiddenFiles")
584-
ShowFiles = RCfgB("ShowFiles")
585-
ShowDirs = RCfgB("ShowDirs")
586594

587595
Cdir = FilterFolder(fl,
588596
ShowHiddenFiles, ShowFiles, ShowDirs, false,
@@ -607,8 +615,9 @@ func Folder ( folder string ) (bool) {
607615
wprint(Few, i, 0, "\033[2K")
608616
}
609617

618+
// only load once (no need to update for now)
619+
FolderAirLine(folder, git)
610620
for k!="backspace"&&k!="^H"{
611-
FolderAirLine(folder, git)
612621
for i=0;i<ld;i++ {
613622
if i < ld {
614623
wprint(Few, i, 0, "\033[2K")
@@ -648,6 +657,9 @@ func Folder ( folder string ) (bool) {
648657
} else if fopen(folder+dir[y]) {
649658
return true
650659
}
660+
ClearAirLine()
661+
mode = 2
662+
FolderAirLine(folder, git)
651663
HideCursor()
652664
case ("q"):
653665
return true

0 commit comments

Comments
 (0)