I've been hacking at the yi-fuzzy-open plugin to make it more like helm 
from emacs. I succeeded in getting the completions to be inside of a bigger 
buffer, but I can't seem to set the modemap of the minibuffer so that 
typing in it updates the buffer.

Here is the code I'm using:

fuzzyOpenWithDepth :: Int -> YiM ()
fuzzyOpenWithDepth d = case () of
  _ | d <= 0 -> printMsg "You need at least depth of 1 for 
fuzzyOpenWithDepth"
    | otherwise -> do
    fileList <- fmap (fmap FileItem) (liftBase (getRecursiveContents d "."))
    bufList <- fmap (fmap (BufferItem . ident . attributes)) (withEditor (gets 
(M.elems . buffers)))

    ffBufRef <- withEditor (newEmptyBufferE fileFinderBufferId)

    let initialState =
            FuzzyState (fileList <> V.fromList bufList)
                       (Just 0)
                       ""
    withGivenBuffer ffBufRef $ do
        putBufferDyn initialState

    promptRef <- withEditor (spawnMinibufferE ">" (const localKeymap))
-- TODO this doesn't seem to make the minibuffer work correctly and typing 
in it does not work
    withGivenBuffer promptRef $ do
      modifyMode $ modeKeymapA .~ topKeymapA %~ const localKeymap

    withEditor $ do
      switchToBufferE promptRef
      renderE initialState



-- 
-- 
Yi development mailing list
yi-devel@googlegroups.com
http://groups.google.com/group/yi-devel
--- 
You received this message because you are subscribed to the Google Groups 
"yi.devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to yi-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to