Lines Matching refs:gui

3 package gui  package
17 func (gui *Gui) handleSelectPrevConflictHunk() error {
18 return gui.withMergeConflictLock(func() error {
19 gui.takeOverMergeConflictScrolling()
20 gui.State.Panels.Merging.SelectPrevConflictHunk()
21 return gui.refreshMergePanel()
25 func (gui *Gui) handleSelectNextConflictHunk() error {
26 return gui.withMergeConflictLock(func() error {
27 gui.takeOverMergeConflictScrolling()
28 gui.State.Panels.Merging.SelectNextConflictHunk()
29 return gui.refreshMergePanel()
33 func (gui *Gui) handleSelectNextConflict() error {
34 return gui.withMergeConflictLock(func() error {
35 gui.takeOverMergeConflictScrolling()
36 gui.State.Panels.Merging.SelectNextConflict()
37 return gui.refreshMergePanel()
41 func (gui *Gui) handleSelectPrevConflict() error {
42 return gui.withMergeConflictLock(func() error {
43 gui.takeOverMergeConflictScrolling()
44 gui.State.Panels.Merging.SelectPrevConflict()
45 return gui.refreshMergePanel()
49 func (gui *Gui) pushFileSnapshot() error {
50 content, err := gui.catSelectedFile()
54 gui.State.Panels.Merging.PushFileSnapshot(content)
58 func (gui *Gui) handlePopFileSnapshot() error {
59 prevContent, ok := gui.State.Panels.Merging.PopFileSnapshot()
64 gitFile := gui.getSelectedFile()
68gui.OnRunCommand(oscommands.NewCmdLogEntry("Undoing last conflict resolution", "Undo merge conflic…
73 return gui.refreshMergePanel()
76 func (gui *Gui) handlePickHunk() error {
77 return gui.withMergeConflictLock(func() error {
78 gui.takeOverMergeConflictScrolling()
80 ok, err := gui.resolveConflict(gui.State.Panels.Merging.Selection())
89 if gui.State.Panels.Merging.IsFinalConflict() {
90 if err := gui.handleCompleteMerge(); err != nil {
94 return gui.refreshMergePanel()
98 func (gui *Gui) handlePickAllHunks() error {
99 return gui.withMergeConflictLock(func() error {
100 gui.takeOverMergeConflictScrolling()
102 ok, err := gui.resolveConflict(mergeconflicts.ALL)
111 return gui.refreshMergePanel()
115 func (gui *Gui) resolveConflict(selection mergeconflicts.Selection) (bool, error) {
116 gitFile := gui.getSelectedFile()
121 ok, output, err := gui.State.Panels.Merging.ContentAfterConflictResolve(gitFile.Name, selection)
130 if err := gui.pushFileSnapshot(); err != nil {
131 return false, gui.surfaceError(err)
145 gui.OnRunCommand(oscommands.NewCmdLogEntry(logStr, "Resolve merge conflict", false))
149 func (gui *Gui) refreshMergePanelWithLock() error {
150 return gui.withMergeConflictLock(gui.refreshMergePanel)
153 func (gui *Gui) refreshMergePanel() error {
154 panelState := gui.State.Panels.Merging
155 cat, err := gui.catSelectedFile()
157 return gui.refreshMainViews(refreshMainOpts{
168 return gui.handleCompleteMerge()
171 hasFocus := gui.currentViewName() == "main"
174 if err := gui.scrollToConflict(); err != nil {
178 return gui.refreshMainViews(refreshMainOpts{
180 title: gui.Tr.MergeConflictsTitle,
187 func (gui *Gui) catSelectedFile() (string, error) {
188 item := gui.getSelectedFile()
190 return "", errors.New(gui.Tr.NoFilesDisplay)
194 return "", errors.New(gui.Tr.NotAFile)
197 cat, err := gui.GitCommand.CatFile(item.Name)
199 gui.Log.Error(err)
205 func (gui *Gui) scrollToConflict() error {
206 if gui.State.Panels.Merging.UserVerticalScrolling {
210 panelState := gui.State.Panels.Merging
215 gui.centerYPos(gui.Views.Main, panelState.GetConflictMiddle())
220 func (gui *Gui) centerYPos(view *gocui.View, y int) {
224 gui.g.Update(func(g *gocui.Gui) error {
229 func (gui *Gui) getMergingOptions() map[string]string {
230 keybindingConfig := gui.Config.GetUserConfig().Keybinding
233 …Sprintf("%s %s", gui.getKeyDisplay(keybindingConfig.Universal.PrevItem), gui.getKeyDisplay(keybind…
234 …Sprintf("%s %s", gui.getKeyDisplay(keybindingConfig.Universal.PrevBlock), gui.getKeyDisplay(keybin…
235 gui.getKeyDisplay(keybindingConfig.Universal.Select): gui.Tr.LcPickHunk,
236 gui.getKeyDisplay(keybindingConfig.Main.PickBothHunks): gui.Tr.LcPickAllHunks,
237 gui.getKeyDisplay(keybindingConfig.Universal.Undo): gui.Tr.LcUndo,
241 func (gui *Gui) handleEscapeMerge() error {
242 gui.takeOverMergeConflictScrolling()
244 gui.State.Panels.Merging.Reset()
245 if err := gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}); err != nil {
250 if gui.g.CurrentView() == gui.Views.Main {
251 return gui.pushContext(gui.State.Contexts.Files)
256 func (gui *Gui) handleCompleteMerge() error {
257 if err := gui.stageSelectedFile(); err != nil {
260 if err := gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}); err != nil {
265 if gui.GitCommand.WorkingTreeState() == commands.REBASE_MODE_NORMAL {
266 return gui.handleEscapeMerge()
269 if !gui.anyFilesWithMergeConflicts() {
270 return gui.promptToContinueRebase()
272 return gui.handleEscapeMerge()
276 func (gui *Gui) promptToContinueRebase() error {
277 gui.takeOverMergeConflictScrolling()
279 return gui.ask(askOpts{
281 prompt: gui.Tr.ConflictsResolved,
284 if err := gui.pushContext(gui.State.Contexts.Files); err != nil {
288 return gui.genericMergeCommand(REBASE_OPTION_CONTINUE)
291 return gui.pushContext(gui.State.Contexts.Files)
296 func (gui *Gui) canScrollMergePanel() bool {
297 currentView := gui.g.CurrentView()
298 if currentView != gui.Views.Main && currentView != gui.Views.Files {
302 file := gui.getSelectedFile()
310 func (gui *Gui) withMergeConflictLock(f func() error) error {
311 gui.State.Panels.Merging.Lock()
312 defer gui.State.Panels.Merging.Unlock()
317 func (gui *Gui) takeOverMergeConflictScrolling() {
318 gui.State.Panels.Merging.UserVerticalScrolling = false