Saída bonita em GHCI: sem cores mostradas

7

Usando esse método para obter cores bonitas do GHCI , não estou conseguindo cores qualquer. No entanto, meu terminal é um urxvt com 256 cores ativadas e TERM é xterm-256color . Alguma idéia do que eu poderia ter perdido?

Meu ~ / .ghci lê:

import qualified IPPrint
import qualified Language.Haskell.HsColour as HsColour
import qualified Language.Haskell.HsColour.Colourise as HsColour
import qualified Language.Haskell.HsColour.Output as HsColour

let myColourPrefs = HsColour.defaultColourPrefs { HsColour.conid = [HsColour.Foreground HsColour.Yellow, HsColour.Bold], HsColour.conop = [HsColour.Foreground HsColour.Yellow], HsColour.string = [HsColour.Foreground HsColour.Green], HsColour.char = [HsColour.Foreground HsColour.Cyan], HsColour.number = [HsColour.Foreground HsColour.Red, HsColour.Bold], HsColour.layout = [HsColour.Foreground HsColour.White], HsColour.keyglyph = [HsColour.Foreground HsColour.White] }

let myPrint = putStrLn . HsColour.hscolour (HsColour.TTYg HsColour.XTerm256Compatible) myColourPrefs False False "" False . IPPrint.pshow

:set -interactive-print=myPrint
:set -XNoMonomorphismRestriction
:set prompt "λ "

O prompt deve ficar assim:

    
por Sardathrion 07.12.2012 / 12:38

2 respostas

2

Você precisa da versão GHCI > = 7.6.1 para a opção -interactive-print .

Reddit: boa produção no GHCi (HOWTO nos comentários)

I was prettying up my GHCi and found a new flag in GHC 7.6 (-interactive-print)

[GHC] # 5461

Milestone: 7.6.1

    
por 11.12.2012 / 19:52
2

Você precisa colocar :set -XNoMonomorphismRestriction antes de let myPrint = ... , testado usando o GHCi 7.6.3.

Alternativamente, sem -XNoMonomorphismRestriction:

let myPrint :: (Show a) => a -> IO (); myPrint = putStrLn . HsColour.hscolour (HsColour.TTYg HsColour.XTerm256Compatible) myColourPrefs False False "" False . IPPrint.pshow

Full .ghci (ligeira modificação da solução no post original do Reddit): link

    
por 15.06.2014 / 09:46

Tags