@@ -178,12 +178,13 @@ func (self *FilesController) GetKeybindings(opts types.KeybindingsOpts) []*types
178178 Description : self .c .Tr .OpenDiffTool ,
179179 },
180180 {
181- Key : opts .GetKey (opts .Config .Files .OpenMergeOptions ),
182- Handler : self .withItems (self .openMergeConflictMenu ),
183- Description : self .c .Tr .ViewMergeConflictOptions ,
184- Tooltip : self .c .Tr .ViewMergeConflictOptionsTooltip ,
185- OpensMenu : true ,
186- DisplayOnScreen : true ,
181+ Key : opts .GetKey (opts .Config .Files .OpenMergeOptions ),
182+ Handler : self .withItems (self .openMergeConflictMenu ),
183+ Description : self .c .Tr .ViewMergeConflictOptions ,
184+ Tooltip : self .c .Tr .ViewMergeConflictOptionsTooltip ,
185+ GetDisabledReason : self .require (self .itemsSelected (self .canOpenMergeConflictMenu )),
186+ OpensMenu : true ,
187+ DisplayOnScreen : true ,
187188 },
188189 {
189190 Key : opts .GetKey (opts .Config .Files .Fetch ),
@@ -1040,6 +1041,20 @@ func (self *FilesController) openMergeConflictMenu(nodes []*filetree.FileNode) e
10401041 return self .c .Helpers ().WorkingTree .CreateMergeConflictMenu (filepaths )
10411042}
10421043
1044+ func (self * FilesController ) canOpenMergeConflictMenu (nodes []* filetree.FileNode ) * types.DisabledReason {
1045+ normalizedNodes := normalisedSelectedNodes (nodes )
1046+
1047+ hasFileNodesWithConflicts := lo .SomeBy (normalizedNodes , func (node * filetree.FileNode ) bool {
1048+ return node .File != nil && node .File .HasInlineMergeConflicts
1049+ })
1050+
1051+ if ! hasFileNodesWithConflicts {
1052+ return & types.DisabledReason {Text : self .c .Tr .NoFilesWithMergeConflicts }
1053+ }
1054+
1055+ return nil
1056+ }
1057+
10431058func (self * FilesController ) openCopyMenu () error {
10441059 node := self .context ().GetSelected ()
10451060
0 commit comments