Ошибка анализа фигурной скобки в Haskell
Запустив Манджаро и пытаясь заставить работать XMonad, я столкнулся с parse error on input '{'
со следующим xmonad.hs
:
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")
]
Я нашел это решение на su.sx и взял xmonad.hs из readthedocs.io. Для начала я хотел бы использовать этот конфигурационный файл, однако я не знаю, как применить решение к этому. Если бы кто-то опытный мог объяснить, почему появляется эта ошибка и как ее исправить, я был бы очень признателен, так как я только недавно начал с Haskell, и это действительно сводит меня с ума в неизвестной степени...:D
1 ответ
Решение
Отступ все после xmonad $ defaultConfig
строка справа (кажется, что некоторые отступы были потеряны при вставке примера):
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")
]
Строки на уровне родительского отступа в блоке do разбираются как отдельные операторы, что здесь не подходит.