From 4aa0ce8c5b42afa9589f6a4829d899e8b221f69b Mon Sep 17 00:00:00 2001 From: Junyoung Clare Jang Date: Thu, 7 Jan 2021 11:10:28 -0500 Subject: [PATCH 1/2] Update the style for Token.hs in eval plugin --- .../src/Ide/Plugin/Eval/Parse/Token.hs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs index 8bb8a6ef3e..7b1bd9fe2f 100644 --- a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs +++ b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs @@ -1,17 +1,29 @@ {-# OPTIONS_GHC -Wwarn #-} -- | Parse source code into a list of line Tokens. -module Ide.Plugin.Eval.Parse.Token(Token(..),TokenS,tokensFrom,unsafeContent,isStatement,isTextLine,isPropLine,isCodeLine,isBlockOpen,isBlockClose) where - -import Control.Monad.Combinators (skipManyTill, many, optional, (<|>)) +module Ide.Plugin.Eval.Parse.Token ( + Token(..), + TokenS, + tokensFrom, + unsafeContent, + isStatement, + isTextLine, + isPropLine, + isCodeLine, + isBlockOpen, + isBlockClose +) where + +import Control.Monad.Combinators (many, optional, skipManyTill, + (<|>)) +import Data.Functor (($>)) import Data.List (foldl') -import Ide.Plugin.Eval.Parse.Parser (satisfy, Parser, alphaNumChar, char, - letterChar, runParser, space, - string, tillEnd) +import Ide.Plugin.Eval.Parse.Parser (Parser, alphaNumChar, char, + letterChar, runParser, satisfy, + space, string, tillEnd) import Ide.Plugin.Eval.Types (Format (..), Language (..), Loc, Located (Located)) import Maybes (fromJust, fromMaybe) -import Data.Functor ( ($>) ) type TParser = Parser Char (State, [TokenS]) @@ -60,7 +72,7 @@ isBlockOpen _ = False isBlockClose :: Token s -> Bool isBlockClose BlockClose = True -isBlockClose _ = False +isBlockClose _ = False unsafeContent :: Token a -> a unsafeContent = fromJust . contentOf @@ -135,9 +147,9 @@ tokens = concatMap (\(l, vs) -> map (Located l) vs) . zip [0 ..] . reverse . snd -- | Parse a line of input aline :: State -> TParser -aline InCode = optionStart <|> multi <|> singleOpen <|> codeLine +aline InCode = optionStart <|> multi <|> singleOpen <|> codeLine aline InSingleComment = optionStart <|> multi <|> commentLine False <|> codeLine -aline InMultiComment = multiClose <|> commentLine True +aline InMultiComment = multiClose <|> commentLine True multi :: TParser multi = multiOpenClose <|> multiOpen From 192bbae58f1e7cce8c8d37dbcc6ed8a4ad272400 Mon Sep 17 00:00:00 2001 From: Junyoung Clare Jang Date: Thu, 7 Jan 2021 11:14:01 -0500 Subject: [PATCH 2/2] Fix #1158 --- plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs index 7b1bd9fe2f..614ae02107 100644 --- a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs +++ b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Token.hs @@ -95,7 +95,7 @@ contentOf _ = Nothing -} tokensFrom :: String -> [Loc (Token String)] -tokensFrom = tokens . lines +tokensFrom = tokens . lines . filter (/= '\r') {- | >>> tokens ["-- |$setup >>> 4+7","x=11"]