swarm-0.7.0.0: src/swarm-doc/Swarm/Doc/Util.hs
{-# LANGUAGE OverloadedStrings #-}
-- |
-- SPDX-License-Identifier: BSD-3-Clause
-- Description: Doc markup utilities
--
-- Utilities for generating doc markup
module Swarm.Doc.Util where
import Data.Text (Text)
import Data.Text qualified as T
import Swarm.Language.Syntax (Const (..))
import Swarm.Language.Syntax qualified as Syntax
-- * Text operations
wrap :: Char -> Text -> Text
wrap c = T.cons c . flip T.snoc c
codeQuote :: Text -> Text
codeQuote = wrap '`'
addLink :: Text -> Text -> Text
addLink l t = T.concat ["[", t, "](", l, ")"]
-- * Common symbols
operators :: [Const]
operators = filter Syntax.isOperator Syntax.allConst
builtinFunctions :: [Const]
builtinFunctions = filter Syntax.isBuiltinFunction Syntax.allConst
commands :: [Const]
commands = filter Syntax.isCmd Syntax.allConst
-- * Other operations
constSyntax :: Const -> Text
constSyntax = Syntax.syntax . Syntax.constInfo