packages feed

mdoc-0.1.0.0: src/Mdoc/Pretty/TroffMacro.hs

-- |
--
-- Module      : Mdoc.Pretty.TroffMacro
-- Copyright   : (c) 2026 Patrick Brisbin
-- License     : AGPL-3
-- Maintainer  : pbrisbin@gmail.com
-- Stability   : experimental
-- Portability : POSIX
module Mdoc.Pretty.TroffMacro
  ( prettyTroffMacro
  ) where

import Mdoc.Prelude

import Mdoc.Pretty
import Mdoc.TroffMacro

prettyTroffMacro :: TroffMacro -> Doc Ann
prettyTroffMacro = \case
  TroffMacroDefineS name mValue ->
    annotate AnnKeyword ".ds"
      <+> pretty name
      <> maybe "" ((" " <>) . pretty) mValue
  TroffMacroDefine name mEnd ->
    annotate AnnKeyword ".de"
      <+> pretty name
      <> maybe "" ((" " <>) . pretty) mEnd
  TroffMacroCall name args ->
    annotate AnnKeyword (pretty $ "." <> name)
      <> hsep (punctuate " " (map pretty args))
  TroffMacroEnd t -> pretty t