proteome-0.3.15.0: lib/Ribosome/Api/Buffer.hs
module Ribosome.Api.Buffer(
edit,
buflisted,
setBufferContent,
bufferContent,
currentBufferContent,
setCurrentBufferContent,
) where
import Neovim (
Neovim,
Buffer,
NvimObject(..),
Object,
toObject,
vim_command',
vim_call_function',
buffer_get_number',
buffer_get_lines',
buffer_set_lines',
vim_get_current_buffer',
)
import Ribosome.Data.Ribo (Ribo)
edit :: FilePath -> Ribo e ()
edit path = vim_command' $ "silent! edit " ++ path
nvimCallBool :: String -> [Object] -> Neovim e Bool
nvimCallBool fun args =
vim_call_function' fun args >>= fromObject'
buflisted :: Buffer -> Neovim e Bool
buflisted buf = do
num <- buffer_get_number' buf
nvimCallBool "buflisted" [toObject num]
bufferContent :: Buffer -> Neovim e [String]
bufferContent buffer =
buffer_get_lines' buffer 0 (-1) False
currentBufferContent :: Neovim e [String]
currentBufferContent = do
buffer <- vim_get_current_buffer'
bufferContent buffer
setBufferContent :: Buffer -> [String] -> Neovim e ()
setBufferContent buffer =
buffer_set_lines' buffer 0 (-1) False
setCurrentBufferContent :: [String] -> Neovim e ()
setCurrentBufferContent content = do
buffer <- vim_get_current_buffer'
setBufferContent buffer content