ribosome-0.1.0.0: lib/Ribosome/Api/Option.hs
module Ribosome.Api.Option(
optionCat,
rtpCat,
optionList,
option,
optionString,
) where
import Control.Monad ((>=>))
import Data.List.Split (splitOn)
import Neovim (Neovim, vim_get_option', fromObject', vim_set_option', toObject, NvimObject)
optionCat :: String -> String -> Neovim e ()
optionCat name extra = do
current <- vim_get_option' name >>= fromObject'
vim_set_option' name $ toObject $ current ++ "," ++ extra
rtpCat :: String -> Neovim e ()
rtpCat = optionCat "runtimepath"
option :: NvimObject a => String -> Neovim e a
option = vim_get_option' >=> fromObject'
optionString :: String -> Neovim e String
optionString = option
optionList :: String -> Neovim e [String]
optionList name = do
s <- option name
return $ splitOn "," s