diff --git a/app/Parsers.hs b/app/Parsers.hs index dd8edd86d..570165c02 100644 --- a/app/Parsers.hs +++ b/app/Parsers.hs @@ -7,17 +7,18 @@ import Syntax import Term import TreeSitter import Control.Comonad.Cofree +import qualified Data.Text as T -parserForType :: String -> Parser +parserForType :: T.Text -> Parser parserForType mediaType = maybe lineByLineParser parseTreeSitterFile $ languageForType mediaType lineByLineParser :: Parser lineByLineParser input = return . root . Indexed $ case foldl annotateLeaves ([], 0) lines of (leaves, _) -> leaves where - lines = Prelude.lines input - root syntax = Info (Range 0 $ length input) mempty :< syntax - leaf charIndex line = Info (Range charIndex $ charIndex + length line) mempty :< Leaf line + lines = T.lines input + root syntax = Info (Range 0 $ T.length input) mempty :< syntax + leaf charIndex line = Info (Range charIndex $ charIndex + T.length line) mempty :< Leaf line annotateLeaves (accum, charIndex) line = (accum ++ [ leaf charIndex line ] - , charIndex + length line + 1) + , charIndex + T.length line + 1)