Skip to content
This repository was archived by the owner on Nov 20, 2020. It is now read-only.

Commit 857ddc2

Browse files
committed
add attributions
1 parent c95e751 commit 857ddc2

File tree

4 files changed

+106
-92
lines changed

4 files changed

+106
-92
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
dist/
1+
dist/
2+
lazykubernetes

pkg/gui/gui.go

-91
Original file line numberDiff line numberDiff line change
@@ -84,94 +84,3 @@ func (gui *Gui) Run() error {
8484
err = g.MainLoop()
8585
return err
8686
}
87-
88-
func (gui *Gui) goEvery(interval time.Duration, function func() error) {
89-
// currentSessionIndex := gui.State.SessionIndex
90-
_ = function() // time.Tick doesn't run immediately so we'll do that here // TODO: maybe change
91-
go func() {
92-
ticker := time.NewTicker(interval)
93-
defer ticker.Stop()
94-
for range ticker.C {
95-
// if gui.State.SessionIndex > currentSessionIndex {
96-
// return
97-
// }
98-
_ = function()
99-
}
100-
}()
101-
}
102-
103-
func (gui *Gui) FindSelectedLine(v *gocui.View, itemCount int) int {
104-
_, cy := v.Cursor()
105-
_, oy := v.Origin()
106-
107-
selectedLine := cy - oy
108-
109-
if selectedLine < 0 {
110-
return 0
111-
}
112-
113-
if selectedLine > itemCount-1 {
114-
return itemCount - 1
115-
}
116-
return selectedLine
117-
}
118-
119-
func (gui *Gui) changeSelectedLine(line *int, total int, up bool) {
120-
if up {
121-
if *line == -1 || *line == 0 {
122-
return
123-
}
124-
125-
*line -= 1
126-
} else {
127-
if *line == -1 || *line == total-1 {
128-
return
129-
}
130-
131-
*line += 1
132-
}
133-
}
134-
135-
func (gui *Gui) focusPoint(selectedX int, selectedY int, lineCount int, v *gocui.View) error {
136-
if selectedY < 0 || selectedY > lineCount {
137-
return nil
138-
}
139-
ox, oy := v.Origin()
140-
originalOy := oy
141-
cx, cy := v.Cursor()
142-
originalCy := cy
143-
_, height := v.Size()
144-
145-
ly := Max(height-1, 0)
146-
147-
windowStart := oy
148-
windowEnd := oy + ly
149-
150-
if selectedY < windowStart {
151-
oy = Max(oy-(windowStart-selectedY), 0)
152-
} else if selectedY > windowEnd {
153-
oy += (selectedY - windowEnd)
154-
}
155-
156-
if windowEnd > lineCount-1 {
157-
shiftAmount := (windowEnd - (lineCount - 1))
158-
oy = Max(oy-shiftAmount, 0)
159-
}
160-
161-
if originalOy != oy {
162-
_ = v.SetOrigin(ox, oy)
163-
}
164-
165-
cy = selectedY - oy
166-
if originalCy != cy {
167-
_ = v.SetCursor(cx, selectedY-oy)
168-
}
169-
return nil
170-
}
171-
172-
func Max(x, y int) int {
173-
if x > y {
174-
return x
175-
}
176-
return y
177-
}

pkg/gui/info.go

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ func (gui *Gui) onInfoTabClick(tabIndex int) error {
2727
return nil
2828
}
2929

30+
// The following scroll functions are modified version of code from lazydocker
31+
// https://github.com/jesseduffield/lazydocker/blob/fa6460b8ab3486b7e84c3a7d4c64fbd8e3f4be21/pkg/gui/main_panel.go
3032
func (gui *Gui) scrollLeftInfo(g *gocui.Gui, v *gocui.View) error {
3133
infoView := gui.getInfoView()
3234
ox, oy := infoView.Origin()

pkg/gui/view_helpers.go

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package gui
2+
3+
import (
4+
"time"
5+
6+
"github.com/jesseduffield/gocui"
7+
)
8+
9+
// This function is a modified version of
10+
// https://github.com/jesseduffield/lazydocker/blob/fa6460b8ab3486b7e84c3a7d4c64fbd8e3f4be21/pkg/gui/gui.go#L227
11+
func (gui *Gui) goEvery(interval time.Duration, function func() error) {
12+
_ = function() // time.Tick doesn't run immediately so we'll do that here // TODO: maybe change
13+
go func() {
14+
ticker := time.NewTicker(interval)
15+
defer ticker.Stop()
16+
for range ticker.C {
17+
_ = function()
18+
}
19+
}()
20+
}
21+
22+
// This function is a modified version of
23+
// https://github.com/jesseduffield/lazydocker/blob/a14e6400cbbd7e2aa9ef22166b085b0678f9ca3a/pkg/gui/view_helpers.go#L361
24+
func (gui *Gui) FindSelectedLine(v *gocui.View, itemCount int) int {
25+
_, cy := v.Cursor()
26+
_, oy := v.Origin()
27+
28+
selectedLine := cy - oy
29+
30+
if selectedLine < 0 {
31+
return 0
32+
}
33+
34+
if selectedLine > itemCount-1 {
35+
return itemCount - 1
36+
}
37+
return selectedLine
38+
}
39+
40+
// This function was copied from
41+
// https://github.com/jesseduffield/lazydocker/blob/a14e6400cbbd7e2aa9ef22166b085b0678f9ca3a/pkg/gui/view_helpers.go#L319
42+
func (gui *Gui) changeSelectedLine(line *int, total int, up bool) {
43+
if up {
44+
if *line == -1 || *line == 0 {
45+
return
46+
}
47+
48+
*line -= 1
49+
} else {
50+
if *line == -1 || *line == total-1 {
51+
return
52+
}
53+
54+
*line += 1
55+
}
56+
}
57+
58+
// This function was copied from
59+
// https://github.com/jesseduffield/lazydocker/blob/a14e6400cbbd7e2aa9ef22166b085b0678f9ca3a/pkg/gui/view_helpers.go#L168
60+
func (gui *Gui) focusPoint(selectedX int, selectedY int, lineCount int, v *gocui.View) error {
61+
if selectedY < 0 || selectedY > lineCount {
62+
return nil
63+
}
64+
ox, oy := v.Origin()
65+
originalOy := oy
66+
cx, cy := v.Cursor()
67+
originalCy := cy
68+
_, height := v.Size()
69+
70+
ly := Max(height-1, 0)
71+
72+
windowStart := oy
73+
windowEnd := oy + ly
74+
75+
if selectedY < windowStart {
76+
oy = Max(oy-(windowStart-selectedY), 0)
77+
} else if selectedY > windowEnd {
78+
oy += (selectedY - windowEnd)
79+
}
80+
81+
if windowEnd > lineCount-1 {
82+
shiftAmount := (windowEnd - (lineCount - 1))
83+
oy = Max(oy-shiftAmount, 0)
84+
}
85+
86+
if originalOy != oy {
87+
_ = v.SetOrigin(ox, oy)
88+
}
89+
90+
cy = selectedY - oy
91+
if originalCy != cy {
92+
_ = v.SetCursor(cx, selectedY-oy)
93+
}
94+
return nil
95+
}
96+
97+
func Max(x, y int) int {
98+
if x > y {
99+
return x
100+
}
101+
return y
102+
}

0 commit comments

Comments
 (0)