2017-05-20 46 views
0

運行Manjaro並試圖獲得XMonad工作,我遇到了以下xmonad.hs一個parse error on input '{'哈斯克爾大括號解析錯誤

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") 
    ] 

我發現這個solution on su.sx,把我從xmonad.hs readthedocs.io。 對於開始我想使用該配置文件,但我不知道如何將該解決方案應用於此。如果有人能夠解釋爲什麼會出現這種錯誤以及如何解決這個問題,我真的很感激它,因爲我最近剛剛開始使用Haskell,並且它真的讓我的想法陷入了未知的程度......:D

+1

那麼,你覺得編譯器如何解析這段代碼呢? (畫圓括號)提示:您鏈接的SuperUser上的解決方案沒有錯誤。 – leftaroundabout

回答

2

縮進後的所有內容在xmonad $ defaultConfig線進一步向右(似乎有些壓痕,當你粘貼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") 
     ] 

線在一個做塊「父」縮進級別被解析爲單獨的語句,這是這裏不合適。