1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-03-12 12:35:25 -07:00

Merge pull request from josephcsible/formatters

Clean up formatters
This commit is contained in:
Vidar Holen 2020-04-12 15:23:17 -07:00 committed by GitHub
commit e7b5fb9742
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 6 deletions
src/ShellCheck/Formatter

@ -22,6 +22,7 @@ module ShellCheck.Formatter.GCC (format) where
import ShellCheck.Interface
import ShellCheck.Formatter.Format
import Data.Either
import Data.List
import GHC.Exts
import System.IO
@ -44,7 +45,7 @@ outputAll cr sys = mapM_ f groups
f group = do
let filename = sourceFile (head group)
result <- (siReadFile sys) filename
let contents = either (const "") id result
let contents = fromRight "" result
outputResult filename contents group
outputResult filename contents warnings = do

@ -24,6 +24,7 @@ import ShellCheck.Interface
import ShellCheck.Formatter.Format
import Data.Aeson
import Data.Either
import Data.IORef
import Data.Monoid
import GHC.Exts
@ -118,7 +119,7 @@ collectResult ref cr sys = mapM_ f groups
f group = do
let filename = sourceFile (head group)
result <- siReadFile sys filename
let contents = either (const "") id result
let contents = fromRight "" result
let comments' = makeNonVirtual comments contents
modifyIORef ref (\x -> comments' ++ x)

@ -25,6 +25,7 @@ import ShellCheck.Formatter.Format
import Control.Monad
import Data.Array
import Data.Either
import Data.Foldable
import Data.Ord
import Data.IORef
@ -122,12 +123,12 @@ outputResult options ref result sys = do
outputForFile color sys comments = do
let fileName = sourceFile (head comments)
result <- (siReadFile sys) fileName
let contents = either (const "") id result
let contents = fromRight "" result
let fileLinesList = lines contents
let lineCount = length fileLinesList
let fileLines = listArray (1, lineCount) fileLinesList
let groups = groupWith lineNo comments
mapM_ (\commentsForLine -> do
forM_ groups $ \commentsForLine -> do
let lineNum = fromIntegral $ lineNo (head commentsForLine)
let line = if lineNum < 1 || lineNum > lineCount
then ""
@ -136,10 +137,9 @@ outputForFile color sys comments = do
putStrLn $ color "message" $
"In " ++ fileName ++" line " ++ show lineNum ++ ":"
putStrLn (color "source" line)
mapM_ (\c -> putStrLn (color (severityText c) $ cuteIndent c)) commentsForLine
forM_ commentsForLine $ \c -> putStrLn $ color (severityText c) $ cuteIndent c
putStrLn ""
showFixedString color commentsForLine (fromIntegral lineNum) fileLines
) groups
-- Pick out only the lines necessary to show a fix in action
sliceFile :: Fix -> Array Int String -> (Fix, Array Int String)