Excerpts from Gwern Branwen's message of Thu Nov 27 22:50:31 +0100 2008: > > On Thu, Nov 27, 2008 at 3:22 AM, Gwern Branwen <[EMAIL PROTECTED]> wrote: > >> On Wed, Nov 26, 2008 at 5:03 PM, Gwern Branwen wrote: > >>> setBufferContents doesn't seem to exist. At least, recursive grep > >>> can't find anything but setBuffer. > >> > >> OK, so I found two ways to do this: > >> > >>> setBufferContents :: (MonadEditor m) => String -> m BufferRef > >>> setBufferContents article = withEditor $ stringToNewBuffer "Ireader > >>> article" (B.fromString article) > > > > You can use the replaceBufferContent function that I pointed to. > > > >> [Attempts to read the buffer contents into a String] > > > >> We really need to make this stuff easier. I vote that we start by > >> adding some basic primitives like a getCurrentBuffer :: YiM String... > > > > It's not difficult if you know where to look. Reading Yi.Buffer.HighLevel > > would help you here. In general all the buffer-manipulation API are in > > the BufferM monad. You can lift it to YiM by using withBuffer. The function > > will then operate on the current buffer. > > I looked at HighLevel many times; I didn't find it very helpful. For > example, the simplest way to write a getBufferContents seems to be > something like this: > > > getBufferContents :: BufferM String > > getBufferContents = do topB > > str <- liftM unlines $ whileB (liftM not $ atEof) > > (readLnB) > > return str > > (And I suspect this is less than optimal - presumably this would not > respect the user's current position?)
Look at Yi.Buffer.Normal getBufferContents = regionOfB Document Cheers, -- Nicolas Pouillard aka Ertai --~--~---------~--~----~------------~-------~--~----~ Yi development mailing list yi-devel@googlegroups.com http://groups.google.com/group/yi-devel -~----------~----~----~----~------~----~------~--~---