module Render.Name where
import qualified Agda.Syntax.Abstract as A
import qualified Agda.Syntax.Concrete as C
import qualified Agda.Syntax.Common as C
import qualified Agda.Utils.List1 as Agda
import Render.Class
import Render.RichText
--------------------------------------------------------------------------------
-- | Concrete
instance Render C.NamePart where
render C.Hole = "_"
render (C.Id s) = text $ C.rawNameToString s
-- glueing name parts together
instance Render C.Name where
render (C.Name range _inScope xs) = linkRange range $ mconcat (fmap render $ Agda.toList xs)
render (C.NoName _ _) = "_"
instance Render C.QName where
render (C.Qual m x)
| C.isUnderscore m = render x -- don't print anonymous modules
| otherwise = render m <> "." <> render x
render (C.QName x) = render x
--------------------------------------------------------------------------------
-- | Abstract
instance Render A.Name where
render = render . A.nameConcrete
instance Render A.QName where
render = hcat . punctuate "." . fmap render . Agda.toList . A.qnameToList