2017-05-20 5 views
0

Courir Manjaro et essayer d'obtenir xmonad au travail, je rencontrais un parse error on input '{' avec la xmonad.hs suivante:Haskell accolade Erreur d'analyse

import XMonad 
import XMonad.Hooks.DynamicLog 
import XMonad.Hooks.ManageDocks 
import XMonad.Util.Run(spawnPipe) 
import XMonad.Util.EZConfig(additionalKeys) 
import System.IO 

main = do 
    xmproc <- spawnPipe "xmobar" 

    xmonad $ defaultConfig 
    { manageHook = manageDocks <+> manageHook defaultConfig 
    , layoutHook = avoidStruts $ layoutHook defaultConfig 
    , logHook = dynamicLogWithPP xmobarPP 
      { ppOutput = hPutStrLn xmproc 
      , pptitle = xmobarColor "green" "" . shorten 50 
      } 
    , modMask = mod4Mask -- rebind Mod to the windows key 
    } `additionalKeys` 
    [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock; xset dmps force off") 
    , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") 
    , ((0, xK_Print), spawn "scrot") 
    ] 

j'ai trouvé ce solution on su.sx et a pris mes xmonad.hs de readthedocs.io. Pour commencer je voudrais utiliser ce fichier de configuration, je ne sais cependant pas comment appliquer la solution à cela. Si quelqu'un de compétent pouvait expliquer pourquoi cette erreur apparaît et comment la réparer, j'apprécierais vraiment depuis que je viens de commencer avec Haskell et ça me fait vraiment pencher dans une mesure inconnue ...: D

+1

Eh bien, que pensez-vous comment le compilateur analyse ce code? (Dessinez des parenthèses) Conseil: la solution sur SuperUser que vous avez liée n'a pas l'erreur. – leftaroundabout

Répondre

2

Dénoncez tout après la ligne xmonad $ defaultConfig plus à droite (il semble que certains de l'empreinte a été perdu lorsque vous avez collé the example):

main = do 
    xmproc <- spawnPipe "xmobar" 

    xmonad $ defaultConfig 
     { manageHook = manageDocks <+> manageHook defaultConfig 
     , layoutHook = avoidStruts $ layoutHook defaultConfig 
     , logHook = dynamicLogWithPP xmobarPP 
         { ppOutput = hPutStrLn xmproc 
         , ppTitle = xmobarColor "green" "" . shorten 50 
         } 
     , modMask = mod4Mask  -- Rebind Mod to the Windows key 
     } `additionalKeys` 
     [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock; xset dpms force off") 
     , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") 
     , ((0, xK_Print), spawn "scrot") 
     ] 

lignes au niveau de retrait « parent » dans un do-bloc sont analysés comme des déclarations séparées, ce qui est pas approprié ici.