diff --git a/fixme-new/lib/Fixme/Run.hs b/fixme-new/lib/Fixme/Run.hs index 8402f180..a979df65 100644 --- a/fixme-new/lib/Fixme/Run.hs +++ b/fixme-new/lib/Fixme/Run.hs @@ -371,13 +371,13 @@ runTop forms = do fxs0 <- scanFiles fxs <- flip filterM fxs0 $ \fme -> do - let fn = HM.lookup "file" (fixmeAttr fme) <&> Text.unpack . coerce + let fn = fixmeGet "file" fme <&> Text.unpack . coerce seen <- maybe1 fn (pure False) selectIsAlreadyScanned pure (not seen) withState $ transactional do for_ fxs $ \fme -> do - let fn = HM.lookup "file" (fixmeAttr fme) <&> Text.unpack . coerce + let fn = fixmeGet "file" fme <&> Text.unpack . coerce fmeRich <- lift $ maybe1 fn (pure mempty) (`getMetaDataFromGitBlame` fme) notice $ "fixme" <+> pretty (fixmeKey fme) insertFixme (fmeRich <> fme) diff --git a/fixme-new/lib/Fixme/Types.hs b/fixme-new/lib/Fixme/Types.hs index f91c6f08..a8ed602f 100644 --- a/fixme-new/lib/Fixme/Types.hs +++ b/fixme-new/lib/Fixme/Types.hs @@ -164,6 +164,11 @@ instance Semigroup Fixme where , fixmeAttr = fixmeAttr a <> fixmeAttr b } +fixmeGet :: FixmeAttrName -> Fixme -> Maybe FixmeAttrVal +fixmeGet name Fixme{..} = HM.lookup name fixmeAttr + +fixmeSet :: FixmeAttrName -> FixmeAttrVal -> Fixme -> Fixme +fixmeSet name val fx = fx { fixmeAttr = HM.insert name val (fixmeAttr fx) } instance FromJSON FixmeOffset where parseJSON = \case