@@ -4,8 +4,10 @@ import (
4
4
"fmt"
5
5
6
6
"github.com/jesseduffield/gocui"
7
+ "github.com/jesseduffield/lazygit/pkg/gui/context"
7
8
"github.com/jesseduffield/lazygit/pkg/theme"
8
9
"github.com/samber/lo"
10
+ "golang.org/x/exp/slices"
9
11
)
10
12
11
13
type viewNameMapping struct {
@@ -86,7 +88,6 @@ func (gui *Gui) createAllViews() error {
86
88
gui .Views .SearchPrefix .BgColor = gocui .ColorDefault
87
89
gui .Views .SearchPrefix .FgColor = gocui .ColorCyan
88
90
gui .Views .SearchPrefix .Frame = false
89
- gui .c .SetViewContent (gui .Views .SearchPrefix , gui .Tr .SearchPrefix )
90
91
91
92
gui .Views .StatusSpacer1 .Frame = false
92
93
gui .Views .StatusSpacer2 .Frame = false
@@ -97,62 +98,30 @@ func (gui *Gui) createAllViews() error {
97
98
gui .Views .Search .Frame = false
98
99
gui .Views .Search .Editor = gocui .EditorFunc (gui .searchEditor )
99
100
100
- gui .Views .Stash .Title = gui .c .Tr .StashTitle
101
-
102
- gui .Views .Commits .Title = gui .c .Tr .CommitsTitle
103
-
104
- gui .Views .CommitFiles .Title = gui .c .Tr .CommitFiles
105
-
106
- gui .Views .Branches .Title = gui .c .Tr .BranchesTitle
107
-
108
- gui .Views .Remotes .Title = gui .c .Tr .RemotesTitle
109
-
110
- gui .Views .Worktrees .Title = gui .c .Tr .WorktreesTitle
111
-
112
- gui .Views .Tags .Title = gui .c .Tr .TagsTitle
113
-
114
- gui .Views .Files .Title = gui .c .Tr .FilesTitle
115
-
116
101
for _ , view := range []* gocui.View {gui .Views .Main , gui .Views .Secondary , gui .Views .Staging , gui .Views .StagingSecondary , gui .Views .PatchBuilding , gui .Views .PatchBuildingSecondary , gui .Views .MergeConflicts } {
117
- view .Title = gui .c .Tr .DiffTitle
118
102
view .Wrap = true
119
103
view .IgnoreCarriageReturns = true
120
104
view .UnderlineHyperLinksOnlyOnHover = true
121
105
view .AutoRenderHyperLinks = true
122
106
}
123
107
124
- gui .Views .Staging .Title = gui .c .Tr .UnstagedChanges
125
108
gui .Views .Staging .Wrap = true
126
-
127
- gui .Views .StagingSecondary .Title = gui .c .Tr .StagedChanges
128
109
gui .Views .StagingSecondary .Wrap = true
129
-
130
- gui .Views .PatchBuilding .Title = gui .Tr .Patch
131
110
gui .Views .PatchBuilding .Wrap = true
132
-
133
- gui .Views .PatchBuildingSecondary .Title = gui .Tr .CustomPatch
134
111
gui .Views .PatchBuildingSecondary .Wrap = true
135
-
136
- gui .Views .MergeConflicts .Title = gui .c .Tr .MergeConflictsTitle
137
112
gui .Views .MergeConflicts .Wrap = false
138
-
139
- gui .Views .Limit .Title = gui .c .Tr .NotEnoughSpace
140
113
gui .Views .Limit .Wrap = true
141
114
142
- gui .Views .Status .Title = gui .c .Tr .StatusTitle
143
-
144
115
gui .Views .AppStatus .BgColor = gocui .ColorDefault
145
116
gui .Views .AppStatus .FgColor = gocui .ColorCyan
146
117
gui .Views .AppStatus .Visible = false
147
118
gui .Views .AppStatus .Frame = false
148
119
149
120
gui .Views .CommitMessage .Visible = false
150
- gui .Views .CommitMessage .Title = gui .c .Tr .CommitSummary
151
121
gui .Views .CommitMessage .Editable = true
152
122
gui .Views .CommitMessage .Editor = gocui .EditorFunc (gui .commitMessageEditor )
153
123
154
124
gui .Views .CommitDescription .Visible = false
155
- gui .Views .CommitDescription .Title = gui .c .Tr .CommitDescriptionTitle
156
125
gui .Views .CommitDescription .Editable = true
157
126
gui .Views .CommitDescription .Editor = gocui .EditorFunc (gui .commitDescriptionEditor )
158
127
@@ -170,12 +139,10 @@ func (gui *Gui) createAllViews() error {
170
139
gui .Views .Information .FgColor = gocui .ColorGreen
171
140
gui .Views .Information .Frame = false
172
141
173
- gui .Views .Extras .Title = gui .c .Tr .CommandLog
174
142
gui .Views .Extras .Autoscroll = true
175
143
gui .Views .Extras .Wrap = true
176
144
gui .Views .Extras .AutoRenderHyperLinks = true
177
145
178
- gui .Views .Snake .Title = gui .c .Tr .SnakeTitle
179
146
gui .Views .Snake .FgColor = gocui .ColorGreen
180
147
181
148
return nil
@@ -201,7 +168,30 @@ func (gui *Gui) configureViewProperties() {
201
168
(* mapping .viewPtr ).InactiveViewSelBgColor = theme .GocuiInactiveViewSelectedLineBgColor
202
169
}
203
170
171
+ gui .c .SetViewContent (gui .Views .SearchPrefix , gui .c .Tr .SearchPrefix )
172
+
173
+ gui .Views .Stash .Title = gui .c .Tr .StashTitle
174
+ gui .Views .Commits .Title = gui .c .Tr .CommitsTitle
175
+ gui .Views .CommitFiles .Title = gui .c .Tr .CommitFiles
176
+ gui .Views .Branches .Title = gui .c .Tr .BranchesTitle
177
+ gui .Views .Remotes .Title = gui .c .Tr .RemotesTitle
178
+ gui .Views .Worktrees .Title = gui .c .Tr .WorktreesTitle
179
+ gui .Views .Tags .Title = gui .c .Tr .TagsTitle
180
+ gui .Views .Files .Title = gui .c .Tr .FilesTitle
181
+ gui .Views .PatchBuilding .Title = gui .c .Tr .Patch
182
+ gui .Views .PatchBuildingSecondary .Title = gui .c .Tr .CustomPatch
183
+ gui .Views .MergeConflicts .Title = gui .c .Tr .MergeConflictsTitle
184
+ gui .Views .Limit .Title = gui .c .Tr .NotEnoughSpace
185
+ gui .Views .Status .Title = gui .c .Tr .StatusTitle
186
+ gui .Views .Staging .Title = gui .c .Tr .UnstagedChanges
187
+ gui .Views .StagingSecondary .Title = gui .c .Tr .StagedChanges
188
+ gui .Views .CommitMessage .Title = gui .c .Tr .CommitSummary
189
+ gui .Views .CommitDescription .Title = gui .c .Tr .CommitDescriptionTitle
190
+ gui .Views .Extras .Title = gui .c .Tr .CommandLog
191
+ gui .Views .Snake .Title = gui .c .Tr .SnakeTitle
192
+
204
193
for _ , view := range []* gocui.View {gui .Views .Main , gui .Views .Secondary , gui .Views .Staging , gui .Views .StagingSecondary , gui .Views .PatchBuilding , gui .Views .PatchBuildingSecondary , gui .Views .MergeConflicts } {
194
+ view .Title = gui .c .Tr .DiffTitle
205
195
view .CanScrollPastBottom = gui .c .UserConfig ().Gui .ScrollPastBottom
206
196
view .TabWidth = gui .c .UserConfig ().Gui .TabWidth
207
197
}
@@ -246,4 +236,20 @@ func (gui *Gui) configureViewProperties() {
246
236
247
237
gui .Views .Stash .TitlePrefix = ""
248
238
}
239
+
240
+ for _ , view := range gui .g .Views () {
241
+ // if the view is in our mapping, we'll set the tabs and the tab index
242
+ for _ , values := range gui .viewTabMap () {
243
+ index := slices .IndexFunc (values , func (tabContext context.TabView ) bool {
244
+ return tabContext .ViewName == view .Name ()
245
+ })
246
+
247
+ if index != - 1 {
248
+ view .Tabs = lo .Map (values , func (tabContext context.TabView , _ int ) string {
249
+ return tabContext .Tab
250
+ })
251
+ view .TabIndex = index
252
+ }
253
+ }
254
+ }
249
255
}
0 commit comments