File tree 2 files changed +29
-32
lines changed
2 files changed +29
-32
lines changed Original file line number Diff line number Diff line change @@ -42,19 +42,16 @@ runRenderM crm vty input = runReaderT m vty
42
42
43
43
explore :: forall w m e . (Show e , Comonad w ) => Pairing m w -> Component' w m e V. Image -> Consumer (Maybe e ) RenderM ()
44
44
explore pair space = do
45
+ let (img, runner) = render space
45
46
vty <- lift ask
46
- let (img, runner) = let { (UI ui) = extract (unpack space) } in runWriter (ui send)
47
- let pic = V. picForImage img
48
- _bounds <- liftIO $ V. outputIface vty & V. displayBounds
49
- -- liftIO $ print bounds
50
- liftIO $ V. update vty pic
51
- -- TODO: Keystrokes
52
- -- e <- liftIO $ nextEvent vty
47
+ liftIO $ V. update vty (V. picForImage img)
53
48
e <- await
54
49
case e of
55
50
Nothing -> return ()
56
51
Just e -> explore pair (appEndo (runner e) space)
57
52
where
53
+ render :: forall v . Component' w m e v -> (v , Handler e (Component' w m e v ))
54
+ render space = let { (UI ui) = extract (unpack space) } in runWriter (ui send)
58
55
send :: forall v . m () -> Endo (Component' w m e v )
59
56
send action =
60
57
Endo $ over Component' $ pair (const id ) action <<< duplicate
Original file line number Diff line number Diff line change 1
1
{ compiler ? "ghc865" , pkgs ? import <nixpkgs> { } } :
2
2
3
3
let
4
- getvolume = pkgs . callPackage ./getvolume/default.nix { } ;
4
+ getvolume = pkgs . callPackage ./getvolume/default.nix { } ;
5
5
packageSet = pkgs . haskell . packages . ${ compiler } ;
6
6
haskellPackages =
7
7
packageSet . override {
8
- overrides = ( self : super :
9
- {
10
- ghc = super . ghc // { withPackages = super . ghc . withHoogle ; } ;
11
- ghcWithPackages = self . ghc . withPackages ;
12
- async-timer = pkgs . haskell . lib . dontCheck super . async-timer ;
13
- }
14
- ) ;
15
- } ;
16
- raw = haskellPackages . callCabal2nix "barbq" ./. { } ;
17
- drv = pkgs . symlinkJoin {
18
- name = "barbq" ;
19
- paths = [ raw getvolume ] ;
20
- } ;
21
-
22
- in
23
- {
24
- barbq = drv ;
25
- barbq-shell = haskellPackages . shellFor {
26
- packages = p : [ raw ] ;
27
- shellHook = ''
28
- export HIE_HOOGLE_DATABASE="$(cat $(which hoogle) | sed -n -e 's|.*--database \(.*\.hoo\).*|\1|p')"
29
- '' ;
30
- buildInputs = with pkgs ; [ cabal-install hlint ghcid getvolume ] ;
8
+ overrides = (
9
+ self : super :
10
+ {
11
+ ghc = super . ghc // { withPackages = super . ghc . withHoogle ; } ;
12
+ ghcWithPackages = self . ghc . withPackages ;
13
+ async-timer = pkgs . haskell . lib . dontCheck super . async-timer ;
14
+ }
15
+ ) ;
31
16
} ;
32
- }
17
+ raw = haskellPackages . callCabal2nix "barbq" ./. { } ;
18
+ drv = pkgs . symlinkJoin {
19
+ name = "barbq" ;
20
+ paths = [ raw getvolume ] ;
21
+ } ;
33
22
23
+ in
24
+ {
25
+ barbq = drv ;
26
+ barbq-shell = haskellPackages . shellFor {
27
+ packages = p : [ raw ] ;
28
+ shellHook = ''
29
+ export HIE_HOOGLE_DATABASE="$(cat $(which hoogle) | sed -n -e 's|.*--database \(.*\.hoo\).*|\1|p')"
30
+ '' ;
31
+ buildInputs = with pkgs ; [ cabal-install hlint ghcid getvolume pkgs . libiconv ] ;
32
+ } ;
33
+ }
You can’t perform that action at this time.
0 commit comments