packages feed

ribosome-0.3.0.0: lib/Ribosome/Api/Option.hs

module Ribosome.Api.Option where

import Data.Text (splitOn)
import Ribosome.Control.Monad.Ribo (NvimE)
import Ribosome.Msgpack.Encode (toMsgpack)
import Ribosome.Nvim.Api.IO (vimGetOption, vimSetOption)

optionCat :: NvimE e m => Text -> Text -> m ()
optionCat name extra = do
  current <- vimGetOption name
  vimSetOption name $ toMsgpack $ current <> "," <> extra

rtpCat :: NvimE e m => Text -> m ()
rtpCat = optionCat "runtimepath"

optionString :: NvimE e m => Text -> m Text
optionString = vimGetOption

optionList :: NvimE e m => Text -> m [Text]
optionList name = do
  s <- vimGetOption name
  return $ splitOn "," s