@@ -458,8 +458,9 @@ func (m *Model) PostHistoryCmd(u string) tea.Cmd {
458458func (m * Model ) SaveRulesCmd () tea.Cmd {
459459 skip := strings .Join (m .RulesData .Skip , "\n " )
460460 priority := strings .Join (m .RulesData .Priority , "\n " )
461+ versioning := strings .Join (m .RulesData .Versioning , "\n " )
461462 return func () tea.Msg {
462- return RulesSavedMsg {Err : m .Client .SaveRules (skip , priority )}
463+ return RulesSavedMsg {Err : m .Client .SaveRules (skip , priority , versioning )}
463464 }
464465}
465466
@@ -492,6 +493,24 @@ func (m *Model) AddAliasCmd(keyword, value string) tea.Cmd {
492493 }
493494}
494495
496+ // PrioritizeRuleCmd reads the latest rules before appending a priority rule.
497+ // Result context menus are usable without visiting the Rules tab first, so
498+ // saving the model's possibly-empty cache here could erase server-side rules.
499+ func (m * Model ) PrioritizeRuleCmd (pattern string ) tea.Cmd {
500+ return func () tea.Msg {
501+ rules , err := m .Client .FetchRules ()
502+ if err != nil {
503+ return RulesSavedMsg {Err : err }
504+ }
505+ rules .Priority = append (rules .Priority , pattern )
506+ return RulesSavedMsg {Err : m .Client .SaveRules (
507+ strings .Join (rules .Skip , "\n " ),
508+ strings .Join (rules .Priority , "\n " ),
509+ strings .Join (rules .Versioning , "\n " ),
510+ )}
511+ }
512+ }
513+
495514func (m * Model ) DeleteAliasCmd (alias string ) tea.Cmd {
496515 return func () tea.Msg {
497516 return RulesSavedMsg {Err : m .Client .DeleteAlias (alias )}
0 commit comments