diff --git a/hbs2-git3/lib/HBS2/Git3/Run.hs b/hbs2-git3/lib/HBS2/Git3/Run.hs index 8c028737..157ca519 100644 --- a/hbs2-git3/lib/HBS2/Git3/Run.hs +++ b/hbs2-git3/lib/HBS2/Git3/Run.hs @@ -62,7 +62,7 @@ theDict = do where - myEntries = do + myEntries = hidePrefixes ["test", "debug", "segment", "reflog:index"] do entry $ bindMatch "--help" $ nil_ $ \case HelpEntryBound what -> do helpEntry what diff --git a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs index 5a10412e..e2a65e80 100644 --- a/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs +++ b/miscellaneous/suckless-conf/lib/Data/Config/Suckless/Script/Internal.hs @@ -406,11 +406,16 @@ hide (Bind w x) = Bind (Just updatedMan) x hidden :: MakeDictM c m () -> MakeDictM c m () hidden = censor (HM.map hide) -hidePrefix :: Id -> MakeDictM c m () -> MakeDictM c m () -hidePrefix (Id p) = error "hidePrefix does not work yet" - -- censor (HM.filterWithKey exclude) - where - exclude (Id k) _ = not (Text.isPrefixOf p k) +hideKeyPredicate :: (Id -> Bool) -> MakeDictM c m () -> MakeDictM c m () +hideKeyPredicate p = censor $ + HM.mapWithKey \k b -> if p k then hide b else b + +hidePrefix :: Text -> MakeDictM c m () -> MakeDictM c m () +hidePrefix p = hideKeyPredicate \(Id k) -> Text.isPrefixOf p k + +hidePrefixes :: [Text] -> MakeDictM c m () -> MakeDictM c m () +hidePrefixes ps = hideKeyPredicate \(Id k) -> + any (\p -> Text.isPrefixOf p k) ps desc :: Doc ann -> MakeDictM c m () -> MakeDictM c m () desc txt = censor (HM.map setDesc)