-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell plugin backend for neovim -- -- This package provides a plugin provider for neovim. It allows you to -- write plugins for one of the great editors of our time in the best -- programming language of our time! ;-) -- -- You should find all the documentation you need inside the -- Neovim module. Most other modules are considered internal, so -- don't be annoyed if using things from there may break your code! -- -- The following modules may also be of interest and they should not -- change their API: Neovim.Quickfix -- -- If you want to write unit tests that interact with neovim, -- Neovim.Test provides some useful functions for that. -- -- If you are keen to debug nvim-hs or a module you are writing, -- take a look at the Neovim.Debug module. -- -- If you spot any errors or if you have great ideas, feel free to open -- an issue on github. @package nvim-hs @version 2.3.2.0 module Neovim.Compat.Megaparsec type Parser = Parsec Void String anyChar :: Parser Char module Neovim.Exceptions -- | Exceptions specific to nvim-hs. data NeovimException -- | Simple error message that is passed to neovim. It should currently -- only contain one line of text. ErrorMessage :: Doc AnsiStyle -> NeovimException -- | Error that can be returned by a remote API call. The Doc -- argument is the name of the remote function that threw this exception. ErrorResult :: Doc AnsiStyle -> Object -> NeovimException exceptionToDoc :: NeovimException -> Doc AnsiStyle -- | Specialization of catch for NeovimExceptions. catchNeovimException :: MonadUnliftIO io => io a -> (NeovimException -> io a) -> io a instance GHC.Show.Show Neovim.Exceptions.NeovimException instance GHC.Exception.Type.Exception Neovim.Exceptions.NeovimException instance Data.String.IsString Neovim.Exceptions.NeovimException module Neovim.Classes -- | Conversion from Object files to Haskell types and back with -- respect to neovim's interpretation. -- -- The NFData constraint has been added to allow forcing results -- of function evaluations in order to catch exceptions from pure code. -- This adds more stability to the plugin provider and seems to be a -- cleaner approach. class NFData o => NvimObject o toObject :: NvimObject o => o -> Object fromObjectUnsafe :: NvimObject o => Object -> o fromObject :: NvimObject o => Object -> Either (Doc AnsiStyle) o fromObject' :: (NvimObject o, MonadIO io) => Object -> io o -- | A generic vim dictionary is a simply a map from strings to objects. -- This type alias is sometimes useful as a type annotation especially if -- the OverloadedStrings extension is enabled. type Dictionary = Map ByteString Object -- | Convenient operator to create a list of Object from normal -- values. values +: of :+ different :+ types :+ can +: be +: -- combined +: this +: way +: [] (+:) :: NvimObject o => o -> [Object] -> [Object] infixr 5 +: -- | Representable types of kind *. This class is derivable in GHC -- with the DeriveGeneric flag on. -- -- A Generic instance must satisfy the following laws: -- --
-- from . to ≡ id -- to . from ≡ id --class Generic a -- | Convert a Doc-ument to a messagepack Object. This is -- more a convenience method to transport error message from and to -- neovim. It generally does not hold that 'docToObject . docFromObject' -- = id. docToObject :: Doc AnsiStyle -> Object -- | See docToObject. docFromObject :: Object -> Either (Doc AnsiStyle) (Doc AnsiStyle) docToText :: Doc AnsiStyle -> Text -- | The abstract data type Doc ann represents pretty -- documents that have been annotated with data of type ann. -- -- More specifically, a value of type Doc represents a -- non-empty set of possible layouts of a document. The layout functions -- select one of these possibilities, taking into account things like the -- width of the output document. -- -- The annotation is an arbitrary piece of data associated with (part of) -- a document. Annotations may be used by the rendering backends in order -- to display output differently, such as -- --
-- >>> putStrLn (show (vsep ["hello", "world"])) -- hello -- world --data Doc ann -- | Render the annotated document in a certain style. Styles not set in -- the annotation will use the style of the surrounding document, or the -- terminal’s default if none has been set yet. -- --
-- style = color Green <> bold -- styledDoc = annotate style "hello world" --data AnsiStyle -- | Overloaded conversion to Doc. -- -- Laws: -- --
-- >>> pretty 1 <+> pretty "hello" <+> pretty 1.234 -- 1 hello 1.234 --pretty :: Pretty a => a -> Doc ann -- | prettyList is only used to define the instance -- Pretty a => Pretty [a]. In normal circumstances -- only the pretty function is used. -- --
-- >>> prettyList [1, 23, 456] -- [1, 23, 456] --prettyList :: Pretty a => [a] -> Doc ann -- | (x <+> y) concatenates document x and -- y with a space in between. -- --
-- >>> "hello" <+> "world" -- hello world ---- --
-- x <+> y = x <> space <> y --(<+>) :: Doc ann -> Doc ann -> Doc ann infixr 6 <+> -- | 8-bit signed integer type data Int8 -- | 16-bit signed integer type data Int16 -- | 32-bit signed integer type data Int32 -- | 64-bit signed integer type data Int64 -- | A Word is an unsigned integral type, with the same size as -- Int. data Word -- | 8-bit unsigned integer type data Word8 -- | 16-bit unsigned integer type data Word16 -- | 32-bit unsigned integer type data Word32 -- | 64-bit unsigned integer type data Word64 instance Neovim.Classes.NvimObject () instance Neovim.Classes.NvimObject GHC.Types.Bool instance Neovim.Classes.NvimObject GHC.Types.Double instance Neovim.Classes.NvimObject GHC.Num.Integer.Integer instance Neovim.Classes.NvimObject GHC.Int.Int64 instance Neovim.Classes.NvimObject GHC.Int.Int32 instance Neovim.Classes.NvimObject GHC.Int.Int16 instance Neovim.Classes.NvimObject GHC.Int.Int8 instance Neovim.Classes.NvimObject GHC.Types.Word instance Neovim.Classes.NvimObject GHC.Word.Word64 instance Neovim.Classes.NvimObject GHC.Word.Word32 instance Neovim.Classes.NvimObject GHC.Word.Word16 instance Neovim.Classes.NvimObject GHC.Word.Word8 instance Neovim.Classes.NvimObject GHC.Types.Int instance Neovim.Classes.NvimObject [GHC.Types.Char] instance Neovim.Classes.NvimObject o => Neovim.Classes.NvimObject [o] instance Neovim.Classes.NvimObject o => Neovim.Classes.NvimObject (GHC.Maybe.Maybe o) instance Neovim.Classes.NvimObject o => Neovim.Classes.NvimObject (Data.Vector.Vector o) instance (Neovim.Classes.NvimObject l, Neovim.Classes.NvimObject r) => Neovim.Classes.NvimObject (Data.Either.Either l r) instance (GHC.Classes.Ord key, Neovim.Classes.NvimObject key, Neovim.Classes.NvimObject val) => Neovim.Classes.NvimObject (Data.Map.Internal.Map key val) instance Neovim.Classes.NvimObject Data.Text.Internal.Text instance Neovim.Classes.NvimObject Data.ByteString.Internal.ByteString instance Neovim.Classes.NvimObject Data.MessagePack.Object instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2) => Neovim.Classes.NvimObject (o1, o2) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3) => Neovim.Classes.NvimObject (o1, o2, o3) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4) => Neovim.Classes.NvimObject (o1, o2, o3, o4) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4, Neovim.Classes.NvimObject o5) => Neovim.Classes.NvimObject (o1, o2, o3, o4, o5) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4, Neovim.Classes.NvimObject o5, Neovim.Classes.NvimObject o6) => Neovim.Classes.NvimObject (o1, o2, o3, o4, o5, o6) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4, Neovim.Classes.NvimObject o5, Neovim.Classes.NvimObject o6, Neovim.Classes.NvimObject o7) => Neovim.Classes.NvimObject (o1, o2, o3, o4, o5, o6, o7) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4, Neovim.Classes.NvimObject o5, Neovim.Classes.NvimObject o6, Neovim.Classes.NvimObject o7, Neovim.Classes.NvimObject o8) => Neovim.Classes.NvimObject (o1, o2, o3, o4, o5, o6, o7, o8) instance (Neovim.Classes.NvimObject o1, Neovim.Classes.NvimObject o2, Neovim.Classes.NvimObject o3, Neovim.Classes.NvimObject o4, Neovim.Classes.NvimObject o5, Neovim.Classes.NvimObject o6, Neovim.Classes.NvimObject o7, Neovim.Classes.NvimObject o8, Neovim.Classes.NvimObject o9) => Neovim.Classes.NvimObject (o1, o2, o3, o4, o5, o6, o7, o8, o9) module Neovim.Log -- | Disable logging to stderr. disableLogger :: IO a -> IO a -- | Initialize the root logger to avoid stderr and set it to log the given -- file instead. Simply wrap the main entry point with this function to -- initialze the logger. -- --
-- main = withLogger "/home/dude/nvim.log" Debug $ do -- putStrLn "Hello, World!" --withLogger :: FilePath -> Priority -> IO a -> IO a module Neovim.OS isWindows :: Bool -- | Attempt to connect to the given Unix domain socket path. getSocketUnix :: FilePath -> IO Socket module Neovim.API.Parser -- | This data type represents the top-level structure of the nvim -- --api-info output. data NeovimAPI NeovimAPI :: [(String, Int64)] -> [(String, Int64)] -> [NeovimFunction] -> NeovimAPI -- | The error types are defined by a name and an identifier. [errorTypes] :: NeovimAPI -> [(String, Int64)] -- | Extension types defined by neovim. [customTypes] :: NeovimAPI -> [(String, Int64)] -- | The remotely executable functions provided by the neovim api. [functions] :: NeovimAPI -> [NeovimFunction] -- | This data type contains simple information about a function as -- received throudh the nvim --api-info command. data NeovimFunction NeovimFunction :: String -> [(NeovimType, String)] -> Bool -> Bool -> NeovimType -> NeovimFunction -- | function name [name] :: NeovimFunction -> String -- | A list of type name and variable name. [parameters] :: NeovimFunction -> [(NeovimType, String)] -- | Indicator whether the function can fail/throws exceptions. [canFail] :: NeovimFunction -> Bool -- | Indicator whether the this function is asynchronous. [async] :: NeovimFunction -> Bool -- | Functions return type. [returnType] :: NeovimFunction -> NeovimType data NeovimType SimpleType :: String -> NeovimType NestedType :: NeovimType -> Maybe Int -> NeovimType Void :: NeovimType -- | Run nvim --api-info and parse its output. parseAPI :: IO (Either (Doc AnsiStyle) NeovimAPI) instance GHC.Classes.Eq Neovim.API.Parser.NeovimType instance GHC.Show.Show Neovim.API.Parser.NeovimType instance GHC.Show.Show Neovim.API.Parser.NeovimFunction instance GHC.Show.Show Neovim.API.Parser.NeovimAPI module Neovim.Plugin.Classes -- | Functionality specific functional description entries. -- -- All fields which are directly specified in these constructors are not -- optional, but can partialy be generated via the Template Haskell -- functions. The last field is a data type that contains all relevant -- options with sensible defaults, hence def can be used as an -- argument. data FunctionalityDescription -- | Exported function. Callable via call name(arg1,arg2). -- --
Just (1,12)
-- Main> :t modify ((+1) :: Int -> Int) -- modify (...) :: (MonadState Int a) => a () ---- -- This says that modify (+1) acts over any Monad that is a -- member of the MonadState class, with an Int state. modify :: MonadState s m => (s -> s) -> m () -- | The abstract data type Doc ann represents pretty -- documents that have been annotated with data of type ann. -- -- More specifically, a value of type Doc represents a -- non-empty set of possible layouts of a document. The layout functions -- select one of these possibilities, taking into account things like the -- width of the output document. -- -- The annotation is an arbitrary piece of data associated with (part of) -- a document. Annotations may be used by the rendering backends in order -- to display output differently, such as -- --
-- >>> putStrLn (show (vsep ["hello", "world"])) -- hello -- world --data Doc ann -- | Render the annotated document in a certain style. Styles not set in -- the annotation will use the style of the surrounding document, or the -- terminal’s default if none has been set yet. -- --
-- style = color Green <> bold -- styledDoc = annotate style "hello world" --data AnsiStyle docToText :: Doc AnsiStyle -> Text -- | Is used within a monadic computation to begin exception processing. throwError :: MonadError e m => e -> m a module Neovim.Plugin.Internal -- | This data type is used in the plugin registration to properly register -- the functions. newtype ExportedFunctionality env EF :: (FunctionalityDescription, [Object] -> Neovim env Object) -> ExportedFunctionality env -- | Extract the function of an ExportedFunctionality. getFunction :: ExportedFunctionality env -> [Object] -> Neovim env Object -- | Extract the description of an ExportedFunctionality. getDescription :: ExportedFunctionality env -> FunctionalityDescription -- | Plugin values are wraped inside this data type via -- wrapPlugin so that we can put plugins in an ordinary list. data NeovimPlugin NeovimPlugin :: Plugin env -> NeovimPlugin -- | This data type contains meta information for the plugin manager. data Plugin env Plugin :: env -> [ExportedFunctionality env] -> Plugin env [environment] :: Plugin env -> env [exports] :: Plugin env -> [ExportedFunctionality env] -- | Wrap a Plugin in some nice blankets, so that we can put them in -- a simple list. wrapPlugin :: Applicative m => Plugin env -> m NeovimPlugin instance Neovim.Plugin.Classes.HasFunctionName (Neovim.Plugin.Internal.ExportedFunctionality env) module Neovim.Config -- | This data type contains information about the configuration of neovim. -- See the fields' documentation for what you possibly want to change. -- Also, the tutorial in the Neovim module should get you started. data NeovimConfig Config :: [Neovim () NeovimPlugin] -> Maybe (FilePath, Priority) -> NeovimConfig -- | The list of plugins. The IO type inside the list allows the plugin -- author to run some arbitrary startup code before creating a value of -- type NeovimPlugin. [plugins] :: NeovimConfig -> [Neovim () NeovimPlugin] -- | Set the general logging options. [logOptions] :: NeovimConfig -> Maybe (FilePath, Priority) -- | Priorities are used to define how important a log message is. Users -- can filter log messages based on priorities. -- -- These have their roots on the traditional syslog system. The standard -- definitions are given below, but you are free to interpret them -- however you like. They are listed here in ascending importance order. data Priority -- | Debug messages DEBUG :: Priority -- | Information INFO :: Priority -- | Normal runtime conditions NOTICE :: Priority -- | General Warnings WARNING :: Priority -- | General Errors ERROR :: Priority -- | Severe situations CRITICAL :: Priority -- | Take immediate action ALERT :: Priority -- | System is unusable EMERGENCY :: Priority -- | Import this module qualified as MsgpackRPC module Neovim.RPC.Classes -- | See -- https://github.com/msgpack-rpc/msgpack-rpc/blob/master/spec.md -- for details about the msgpack rpc specification. data Message -- | Request in the sense of the msgpack rpc specification -- -- Parameters * Message identifier that has to be put in the response to -- this request * Function name * Function arguments Request :: Request -> Message -- | Response in the sense of the msgpack rpc specifcation -- -- Parameters * Mesage identifier which matches a request * Either -- an error Object or a result Object Response :: !Int64 -> Either Object Object -> Message -- | Notification in the sense of the msgpack rpc specification Notification :: Notification -> Message instance GHC.Generics.Generic Neovim.RPC.Classes.Message instance GHC.Show.Show Neovim.RPC.Classes.Message instance GHC.Classes.Ord Neovim.RPC.Classes.Message instance GHC.Classes.Eq Neovim.RPC.Classes.Message instance Control.DeepSeq.NFData Neovim.RPC.Classes.Message instance Neovim.Plugin.IPC.Classes.Message Neovim.RPC.Classes.Message instance Neovim.Classes.NvimObject Neovim.RPC.Classes.Message instance Prettyprinter.Internal.Pretty Neovim.RPC.Classes.Message module Neovim.RPC.Common -- | Things shared between the socket reader and the event handler. data RPCConfig RPCConfig :: TVar (Map Int64 (UTCTime, TMVar (Either Object Object))) -> TVar Int64 -> RPCConfig -- | A map from message identifiers (as per RPC spec) to a tuple with a -- timestamp and a TMVar that is used to communicate the result -- back to the calling thread. [recipients] :: RPCConfig -> TVar (Map Int64 (UTCTime, TMVar (Either Object Object))) -- | Message identifier for the next message as per RPC spec. [nextMessageId] :: RPCConfig -> TVar Int64 -- | Create a new basic configuration containing a communication channel -- for remote procedure call events and an empty lookup table for -- functions to mediate. newRPCConfig :: (Applicative io, MonadUnliftIO io) => io RPCConfig -- | Simple data type defining the kind of socket the socket reader should -- use. data SocketType -- | Use the handle for receiving msgpack-rpc messages. This is suitable -- for an embedded neovim which is used in test cases. Stdout :: Handle -> SocketType -- | Read the connection information from the environment variable -- NVIM. Environment :: SocketType -- | Use a unix socket. UnixSocket :: FilePath -> SocketType -- | Use an IP socket. First argument is the port and the second is the -- host name. TCP :: Int -> String -> SocketType -- | Create a Handle from the given socket description. -- -- The handle is not automatically closed. createHandle :: (Functor io, MonadUnliftIO io) => SocketType -> io Handle parseNvimEnvironmentVariable :: MonadFail m => String -> m SocketType pUnixSocket :: Parser SocketType pTcpAddress :: Parser SocketType -- | Close the handle and print a warning if the conduit chain has been -- interrupted prematurely. cleanUpHandle :: MonadUnliftIO io => Handle -> Bool -> io () module Neovim.RPC.FunctionCall -- | Helper function that concurrently puts a Message in the event -- queue and returns an STM action that returns the result. acall :: NvimObject result => FunctionName -> [Object] -> Neovim env (STM (Either NeovimException result)) -- | Call a neovim function synchronously. This function blocks until the -- result is available. scall :: NvimObject result => FunctionName -> [Object] -> Neovim env (Either NeovimException result) -- | Helper function similar to scall that throws a runtime -- exception if the result is an error object. scall' :: NvimObject result => FunctionName -> [Object] -> Neovim env result -- | Similar to scall, but throw a NeovimException instead of -- returning it. scallThrow :: NvimObject result => FunctionName -> [Object] -> Neovim env result -- | Lifted variant of atomically. atomically' :: MonadIO io => STM result -> io result -- | Wait for the result of the STM action. -- -- This action possibly blocks as it is an alias for ioSTM -> -- ioSTM >>= liftIO . atomically. wait :: Neovim env (STM result) -> Neovim env result -- | Variant of wait that discards the result. wait' :: Neovim env (STM result) -> Neovim env () -- | Send the result back to the neovim instance. respond :: NvimObject result => Request -> Either String result -> Neovim env () module Neovim.RPC.EventHandler -- | This function will establish a connection to the given socket and -- write msgpack-rpc requests to it. runEventHandler :: Handle -> Config RPCConfig -> IO () instance Control.Monad.Reader.Class.MonadReader (Neovim.Context.Internal.Config Neovim.RPC.Common.RPCConfig) Neovim.RPC.EventHandler.EventHandler instance Control.Monad.IO.Class.MonadIO Neovim.RPC.EventHandler.EventHandler instance GHC.Base.Monad Neovim.RPC.EventHandler.EventHandler instance GHC.Base.Applicative Neovim.RPC.EventHandler.EventHandler instance GHC.Base.Functor Neovim.RPC.EventHandler.EventHandler module Neovim.API.TH -- | Generate the API types and functions provided by nvim -- --api-info. -- -- The provided map allows the use of different Haskell types for the -- types defined in the API. The types must be an instance of -- NvimObject and they must form an isomorphism with the sent -- messages types. Currently, it provides a Convenient way to replace the -- String type with Text, ByteString or -- String. generateAPI :: TypeMap -> Q [Dec] -- | Define an exported function by providing a custom name and referencing -- the function you want to export. -- -- Note that the name must start with an upper case letter. -- -- Example: $(function "MyExportedFunction" 'myDefinedFunction) -- Sync function :: String -> Name -> Q Exp -- | Define an exported function. This function works exactly like -- function, but it generates the exported name automatically by -- converting the first letter to upper case. function' :: Name -> Q Exp -- | Similarly to function, this function is used to export a -- command with a custom name. -- -- Note that commands must start with an upper case letter. -- -- Due to limitations on the side of (neo)vim, commands can only have one -- of the following five signatures, where you can replace String -- with ByteString or Text if you wish: -- --
-- data T a b = C1 a b | C2 deriving (Typeable, Data) ---- -- GHC will generate an instance that is equivalent to -- --
-- instance (Data a, Data b) => Data (T a b) where -- gfoldl k z (C1 a b) = z C1 `k` a `k` b -- gfoldl k z C2 = z C2 -- -- gunfold k z c = case constrIndex c of -- 1 -> k (k (z C1)) -- 2 -> z C2 -- -- toConstr (C1 _ _) = con_C1 -- toConstr C2 = con_C2 -- -- dataTypeOf _ = ty_T -- -- con_C1 = mkConstr ty_T "C1" [] Prefix -- con_C2 = mkConstr ty_T "C2" [] Prefix -- ty_T = mkDataType "Module.T" [con_C1, con_C2] ---- -- This is suitable for datatypes that are exported transparently. class Typeable a => Data a -- | The class Typeable allows a concrete representation of a type -- to be calculated. class Typeable (a :: k) instance GHC.Read.Read Neovim.API.TH.ArgType instance GHC.Show.Show Neovim.API.TH.ArgType instance GHC.Classes.Ord Neovim.API.TH.ArgType instance GHC.Classes.Eq Neovim.API.TH.ArgType module Neovim.API.Text data NeovimExceptionGen NeovimException :: !ByteString -> NeovimExceptionGen NeovimValidation :: !ByteString -> NeovimExceptionGen data Buffer Buffer :: !ByteString -> Buffer data Tabpage Tabpage :: !ByteString -> Tabpage data Window Window :: !ByteString -> Window window_is_valid :: Window -> forall env. Neovim env Bool window_get_tabpage :: Window -> forall env. Neovim env Tabpage window_get_position :: Window -> forall env. Neovim env (Int64, Int64) window_get_var :: Window -> Text -> forall env. Neovim env Object window_set_width :: Window -> Int64 -> forall env. Neovim env () window_get_width :: Window -> forall env. Neovim env Int64 window_set_height :: Window -> Int64 -> forall env. Neovim env () window_get_height :: Window -> forall env. Neovim env Int64 window_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () window_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) window_get_buffer :: Window -> forall env. Neovim env Buffer vim_call_function :: Text -> Vector Object -> forall env. Neovim env Object vim_eval :: Text -> forall env. Neovim env Object vim_command :: Text -> forall env. Neovim env () vim_get_api_info :: forall env. Neovim env (Vector Object) vim_get_color_map :: forall env. Neovim env (Map Text Object) vim_name_to_color :: Text -> forall env. Neovim env Int64 vim_unsubscribe :: Text -> forall env. Neovim env () vim_subscribe :: Text -> forall env. Neovim env () vim_set_current_tabpage :: Tabpage -> forall env. Neovim env () vim_get_current_tabpage :: forall env. Neovim env Tabpage vim_get_tabpages :: forall env. Neovim env (Vector Tabpage) vim_set_current_window :: Window -> forall env. Neovim env () vim_get_current_window :: forall env. Neovim env Window vim_get_windows :: forall env. Neovim env (Vector Window) vim_set_current_buffer :: Buffer -> forall env. Neovim env () vim_get_current_buffer :: forall env. Neovim env Buffer vim_get_buffers :: forall env. Neovim env (Vector Buffer) vim_report_error :: Text -> forall env. Neovim env () vim_err_write :: Text -> forall env. Neovim env () vim_out_write :: Text -> forall env. Neovim env () vim_get_vvar :: Text -> forall env. Neovim env Object vim_get_var :: Text -> forall env. Neovim env Object vim_del_current_line :: forall env. Neovim env () vim_set_current_line :: Text -> forall env. Neovim env () vim_get_current_line :: forall env. Neovim env Text vim_change_directory :: Text -> forall env. Neovim env () vim_list_runtime_paths :: forall env. Neovim env (Vector Text) vim_strwidth :: Text -> forall env. Neovim env Int64 vim_replace_termcodes :: Text -> Bool -> Bool -> Bool -> forall env. Neovim env Text vim_input :: Text -> forall env. Neovim env Int64 vim_feedkeys :: Text -> Text -> Bool -> forall env. Neovim env () ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env Object ui_detach :: forall env. Neovim env () tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool tabpage_get_window :: Tabpage -> forall env. Neovim env Window tabpage_get_var :: Tabpage -> Text -> forall env. Neovim env Object tabpage_get_windows :: Tabpage -> forall env. Neovim env (Vector Window) window_set_option :: Window -> Text -> Object -> forall env. Neovim env () window_get_option :: Window -> Text -> forall env. Neovim env Object buffer_set_option :: Buffer -> Text -> Object -> forall env. Neovim env () buffer_get_option :: Buffer -> Text -> forall env. Neovim env Object vim_get_option :: Text -> forall env. Neovim env Object vim_set_option :: Text -> Object -> forall env. Neovim env () buffer_add_highlight :: Buffer -> Int64 -> Text -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 buffer_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () buffer_get_number :: Buffer -> forall env. Neovim env Int64 vim_command_output :: Text -> forall env. Neovim env Text buffer_get_mark :: Buffer -> Text -> forall env. Neovim env (Int64, Int64) buffer_is_valid :: Buffer -> forall env. Neovim env Bool buffer_set_name :: Buffer -> Text -> forall env. Neovim env () buffer_get_name :: Buffer -> forall env. Neovim env Text buffer_get_var :: Buffer -> Text -> forall env. Neovim env Object buffer_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> Vector Text -> forall env. Neovim env () buffer_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env (Vector Text) buffer_line_count :: Buffer -> forall env. Neovim env Int64 nvim_win_set_hl_ns :: Window -> Int64 -> forall env. Neovim env () nvim_win_call :: Window -> Int64 -> forall env. Neovim env Object nvim_win_close :: Window -> Bool -> forall env. Neovim env () nvim_win_hide :: Window -> forall env. Neovim env () nvim_win_is_valid :: Window -> forall env. Neovim env Bool nvim_win_get_number :: Window -> forall env. Neovim env Int64 nvim_win_get_tabpage :: Window -> forall env. Neovim env Tabpage nvim_win_get_position :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_del_var :: Window -> Text -> forall env. Neovim env () nvim_win_set_var :: Window -> Text -> Object -> forall env. Neovim env () nvim_win_get_var :: Window -> Text -> forall env. Neovim env Object nvim_win_set_width :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_width :: Window -> forall env. Neovim env Int64 nvim_win_set_height :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_height :: Window -> forall env. Neovim env Int64 nvim_win_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () nvim_win_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_set_buf :: Window -> Buffer -> forall env. Neovim env () nvim_win_get_buf :: Window -> forall env. Neovim env Buffer nvim_win_get_config :: Window -> forall env. Neovim env (Map Text Object) nvim_win_set_config :: Window -> Map Text Object -> forall env. Neovim env () nvim_open_win :: Buffer -> Bool -> Map Text Object -> forall env. Neovim env Window nvim_parse_expression :: Text -> Text -> Bool -> forall env. Neovim env (Map Text Object) nvim_call_dict_function :: Object -> Text -> Vector Object -> forall env. Neovim env Object nvim_call_function :: Text -> Vector Object -> forall env. Neovim env Object nvim_eval :: Text -> forall env. Neovim env Object nvim_command :: Text -> forall env. Neovim env () nvim_exec :: Text -> Bool -> forall env. Neovim env Text nvim_eval_statusline :: Text -> Map Text Object -> forall env. Neovim env (Map Text Object) nvim_get_mark :: Text -> Map Text Object -> forall env. Neovim env (Vector Object) nvim_del_mark :: Text -> forall env. Neovim env Bool nvim_select_popupmenu_item :: Int64 -> Bool -> Bool -> Map Text Object -> forall env. Neovim env () nvim_get_proc :: Int64 -> forall env. Neovim env Object nvim_get_proc_children :: Int64 -> forall env. Neovim env (Vector Object) nvim_list_uis :: forall env. Neovim env (Vector Object) nvim_call_atomic :: Vector Object -> forall env. Neovim env (Vector Object) nvim_list_chans :: forall env. Neovim env (Vector Object) nvim_get_chan_info :: Int64 -> forall env. Neovim env (Map Text Object) nvim_set_client_info :: Text -> Map Text Object -> Text -> Map Text Object -> Map Text Object -> forall env. Neovim env () nvim_get_api_info :: forall env. Neovim env (Vector Object) nvim_del_keymap :: Text -> Text -> forall env. Neovim env () nvim_set_keymap :: Text -> Text -> Text -> Map Text Object -> forall env. Neovim env () nvim_get_keymap :: Text -> forall env. Neovim env (Vector (Map Text Object)) nvim_get_mode :: forall env. Neovim env (Map Text Object) nvim_load_context :: Map Text Object -> forall env. Neovim env Object nvim_get_context :: Map Text Object -> forall env. Neovim env (Map Text Object) nvim_get_color_map :: forall env. Neovim env (Map Text Object) nvim_get_color_by_name :: Text -> forall env. Neovim env Int64 nvim_unsubscribe :: Text -> forall env. Neovim env () nvim_subscribe :: Text -> forall env. Neovim env () nvim_put :: Vector Text -> Text -> Bool -> Bool -> forall env. Neovim env () nvim_paste :: Text -> Bool -> Int64 -> forall env. Neovim env Bool nvim_set_current_tabpage :: Tabpage -> forall env. Neovim env () nvim_get_current_tabpage :: forall env. Neovim env Tabpage nvim_list_tabpages :: forall env. Neovim env (Vector Tabpage) nvim_chan_send :: Int64 -> Text -> forall env. Neovim env () nvim_open_term :: Buffer -> Map Text Object -> forall env. Neovim env Int64 nvim_create_buf :: Bool -> Bool -> forall env. Neovim env Buffer nvim_set_current_win :: Window -> forall env. Neovim env () nvim_get_current_win :: forall env. Neovim env Window nvim_list_wins :: forall env. Neovim env (Vector Window) nvim_set_current_buf :: Buffer -> forall env. Neovim env () nvim_get_current_buf :: forall env. Neovim env Buffer nvim_list_bufs :: forall env. Neovim env (Vector Buffer) nvim_err_writeln :: Text -> forall env. Neovim env () nvim_err_write :: Text -> forall env. Neovim env () nvim_out_write :: Text -> forall env. Neovim env () nvim_echo :: Vector Object -> Bool -> Map Text Object -> forall env. Neovim env () nvim_set_vvar :: Text -> Object -> forall env. Neovim env () nvim_get_vvar :: Text -> forall env. Neovim env Object nvim_del_var :: Text -> forall env. Neovim env () nvim_set_var :: Text -> Object -> forall env. Neovim env () nvim_get_var :: Text -> forall env. Neovim env Object nvim_del_current_line :: forall env. Neovim env () nvim_set_current_line :: Text -> forall env. Neovim env () nvim_get_current_line :: forall env. Neovim env Text nvim_set_current_dir :: Text -> forall env. Neovim env () nvim_get_runtime_file :: Text -> Bool -> forall env. Neovim env (Vector Text) nvim_list_runtime_paths :: forall env. Neovim env (Vector Text) nvim_strwidth :: Text -> forall env. Neovim env Int64 nvim_notify :: Text -> Int64 -> Map Text Object -> forall env. Neovim env Object nvim_exec_lua :: Text -> Vector Object -> forall env. Neovim env Object nvim_replace_termcodes :: Text -> Bool -> Bool -> Bool -> forall env. Neovim env Text nvim_input_mouse :: Text -> Text -> Text -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_input :: Text -> forall env. Neovim env Int64 nvim_feedkeys :: Text -> Text -> Bool -> forall env. Neovim env () nvim_set_hl_ns_fast :: Int64 -> forall env. Neovim env () nvim_set_hl_ns :: Int64 -> forall env. Neovim env () nvim_set_hl :: Int64 -> Text -> Map Text Object -> forall env. Neovim env () nvim_get_hl_id_by_name :: Text -> forall env. Neovim env Int64 nvim_get_hl_by_id :: Int64 -> Bool -> forall env. Neovim env (Map Text Object) nvim_get_hl_by_name :: Text -> Bool -> forall env. Neovim env (Map Text Object) nvim_ui_pum_set_bounds :: Double -> Double -> Double -> Double -> forall env. Neovim env () nvim_ui_pum_set_height :: Int64 -> forall env. Neovim env () nvim_ui_try_resize_grid :: Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_ui_set_option :: Text -> Object -> forall env. Neovim env () nvim_ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env () nvim_ui_detach :: forall env. Neovim env () ui_attach :: Int64 -> Int64 -> Bool -> forall env. Neovim env () nvim_ui_attach :: Int64 -> Int64 -> Map Text Object -> forall env. Neovim env () nvim_tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool nvim_tabpage_get_number :: Tabpage -> forall env. Neovim env Int64 nvim_tabpage_get_win :: Tabpage -> forall env. Neovim env Window nvim_tabpage_del_var :: Tabpage -> Text -> forall env. Neovim env () nvim_tabpage_set_var :: Tabpage -> Text -> Object -> forall env. Neovim env () nvim_tabpage_get_var :: Tabpage -> Text -> forall env. Neovim env Object nvim_tabpage_list_wins :: Tabpage -> forall env. Neovim env (Vector Window) nvim_win_set_option :: Window -> Text -> Object -> forall env. Neovim env () nvim_win_get_option :: Window -> Text -> forall env. Neovim env Object nvim_buf_set_option :: Buffer -> Text -> Object -> forall env. Neovim env () nvim_buf_get_option :: Buffer -> Text -> forall env. Neovim env Object nvim_get_option :: Text -> forall env. Neovim env Object nvim_set_option :: Text -> Object -> forall env. Neovim env () nvim_get_option_info :: Text -> forall env. Neovim env (Map Text Object) nvim_get_all_options_info :: forall env. Neovim env (Map Text Object) nvim_set_option_value :: Text -> Object -> Map Text Object -> forall env. Neovim env () nvim_get_option_value :: Text -> Map Text Object -> forall env. Neovim env Object nvim_set_decoration_provider :: Int64 -> Map Text Object -> forall env. Neovim env () nvim_buf_clear_namespace :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_add_highlight :: Buffer -> Int64 -> Text -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 nvim_buf_del_extmark :: Buffer -> Int64 -> Int64 -> forall env. Neovim env Bool nvim_buf_set_extmark :: Buffer -> Int64 -> Int64 -> Int64 -> Map Text Object -> forall env. Neovim env Int64 nvim_buf_get_extmarks :: Buffer -> Int64 -> Object -> Object -> Map Text Object -> forall env. Neovim env (Vector Object) nvim_buf_get_extmark_by_id :: Buffer -> Int64 -> Int64 -> Map Text Object -> forall env. Neovim env (Vector Int64) nvim_get_namespaces :: forall env. Neovim env (Map Text Object) nvim_create_namespace :: Text -> forall env. Neovim env Int64 vim_del_var :: Text -> forall env. Neovim env Object vim_set_var :: Text -> Object -> forall env. Neovim env Object tabpage_del_var :: Tabpage -> Text -> forall env. Neovim env Object tabpage_set_var :: Tabpage -> Text -> Object -> forall env. Neovim env Object window_del_var :: Window -> Text -> forall env. Neovim env Object window_set_var :: Window -> Text -> Object -> forall env. Neovim env Object buffer_del_var :: Buffer -> Text -> forall env. Neovim env Object buffer_set_var :: Buffer -> Text -> Object -> forall env. Neovim env Object buffer_set_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> Vector Text -> forall env. Neovim env () buffer_get_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> forall env. Neovim env (Vector Text) buffer_del_line :: Buffer -> Int64 -> forall env. Neovim env () buffer_set_line :: Buffer -> Int64 -> Text -> forall env. Neovim env () buffer_get_line :: Buffer -> Int64 -> forall env. Neovim env Text buffer_insert :: Buffer -> Int64 -> Vector Text -> forall env. Neovim env () nvim_buf_set_virtual_text :: Buffer -> Int64 -> Int64 -> Vector Object -> Map Text Object -> forall env. Neovim env Int64 nvim_buf_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_get_number :: Buffer -> forall env. Neovim env Int64 nvim_execute_lua :: Text -> Vector Object -> forall env. Neovim env Object nvim_command_output :: Text -> forall env. Neovim env Text nvim_buf_get_commands :: Buffer -> Map Text Object -> forall env. Neovim env (Map Text Object) nvim_get_commands :: Map Text Object -> forall env. Neovim env (Map Text Object) nvim_buf_del_user_command :: Buffer -> Text -> forall env. Neovim env () nvim_buf_create_user_command :: Buffer -> Text -> Object -> Map Text Object -> forall env. Neovim env () nvim_del_user_command :: Text -> forall env. Neovim env () nvim_create_user_command :: Text -> Object -> Map Text Object -> forall env. Neovim env () nvim_cmd :: Map Text Object -> Map Text Object -> forall env. Neovim env Text nvim_parse_cmd :: Text -> Map Text Object -> forall env. Neovim env (Map Text Object) nvim_buf_call :: Buffer -> Int64 -> forall env. Neovim env Object nvim_buf_get_mark :: Buffer -> Text -> forall env. Neovim env (Int64, Int64) nvim_buf_set_mark :: Buffer -> Text -> Int64 -> Int64 -> Map Text Object -> forall env. Neovim env Bool nvim_buf_del_mark :: Buffer -> Text -> forall env. Neovim env Bool nvim_buf_is_valid :: Buffer -> forall env. Neovim env Bool nvim_buf_delete :: Buffer -> Map Text Object -> forall env. Neovim env () nvim_buf_is_loaded :: Buffer -> forall env. Neovim env Bool nvim_buf_set_name :: Buffer -> Text -> forall env. Neovim env () nvim_buf_get_name :: Buffer -> forall env. Neovim env Text nvim_buf_del_var :: Buffer -> Text -> forall env. Neovim env () nvim_buf_set_var :: Buffer -> Text -> Object -> forall env. Neovim env () nvim_buf_del_keymap :: Buffer -> Text -> Text -> forall env. Neovim env () nvim_buf_set_keymap :: Buffer -> Text -> Text -> Text -> Map Text Object -> forall env. Neovim env () nvim_buf_get_keymap :: Buffer -> Text -> forall env. Neovim env (Vector (Map Text Object)) nvim_buf_get_changedtick :: Buffer -> forall env. Neovim env Int64 nvim_buf_get_var :: Buffer -> Text -> forall env. Neovim env Object nvim_buf_get_offset :: Buffer -> Int64 -> forall env. Neovim env Int64 nvim_buf_get_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> Map Text Object -> forall env. Neovim env (Vector Text) nvim_buf_set_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> Vector Text -> forall env. Neovim env () nvim_buf_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> Vector Text -> forall env. Neovim env () nvim_buf_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env (Vector Text) nvim_buf_detach :: Buffer -> forall env. Neovim env Bool nvim_buf_attach :: Buffer -> Bool -> Map Text Object -> forall env. Neovim env Bool nvim_buf_line_count :: Buffer -> forall env. Neovim env Int64 nvim_exec_autocmds :: Object -> Map Text Object -> forall env. Neovim env () nvim_del_augroup_by_name :: Text -> forall env. Neovim env () nvim_del_augroup_by_id :: Int64 -> forall env. Neovim env () nvim_create_augroup :: Text -> Map Text Object -> forall env. Neovim env Int64 nvim_clear_autocmds :: Map Text Object -> forall env. Neovim env () nvim_del_autocmd :: Int64 -> forall env. Neovim env () nvim_create_autocmd :: Object -> Map Text Object -> forall env. Neovim env Int64 nvim_get_autocmds :: Map Text Object -> forall env. Neovim env (Vector Object) instance GHC.Generics.Generic Neovim.API.Text.NeovimExceptionGen instance GHC.Show.Show Neovim.API.Text.NeovimExceptionGen instance GHC.Classes.Eq Neovim.API.Text.NeovimExceptionGen instance GHC.Generics.Generic Neovim.API.Text.Buffer instance GHC.Show.Show Neovim.API.Text.Buffer instance GHC.Classes.Eq Neovim.API.Text.Buffer instance GHC.Generics.Generic Neovim.API.Text.Tabpage instance GHC.Show.Show Neovim.API.Text.Tabpage instance GHC.Classes.Eq Neovim.API.Text.Tabpage instance GHC.Generics.Generic Neovim.API.Text.Window instance GHC.Show.Show Neovim.API.Text.Window instance GHC.Classes.Eq Neovim.API.Text.Window instance Control.DeepSeq.NFData Neovim.API.Text.Window instance Neovim.Classes.NvimObject Neovim.API.Text.Window instance Control.DeepSeq.NFData Neovim.API.Text.Tabpage instance Neovim.Classes.NvimObject Neovim.API.Text.Tabpage instance Control.DeepSeq.NFData Neovim.API.Text.Buffer instance Neovim.Classes.NvimObject Neovim.API.Text.Buffer instance Control.DeepSeq.NFData Neovim.API.Text.NeovimExceptionGen instance GHC.Exception.Type.Exception Neovim.API.Text.NeovimExceptionGen instance Neovim.Classes.NvimObject Neovim.API.Text.NeovimExceptionGen -- | Note that this module is completely generated. If you're reading this -- on hackage, the actual functions of this module may be different from -- what is available to you. All the functions in this module depend on -- the neovim version that was used when this package was compiled. module Neovim.API.String data NeovimExceptionGen NeovimException :: !ByteString -> NeovimExceptionGen NeovimValidation :: !ByteString -> NeovimExceptionGen data Buffer Buffer :: !ByteString -> Buffer data Tabpage Tabpage :: !ByteString -> Tabpage data Window Window :: !ByteString -> Window window_is_valid :: Window -> forall env. Neovim env Bool window_get_tabpage :: Window -> forall env. Neovim env Tabpage window_get_position :: Window -> forall env. Neovim env (Int64, Int64) window_get_var :: Window -> String -> forall env. Neovim env Object window_set_width :: Window -> Int64 -> forall env. Neovim env () window_get_width :: Window -> forall env. Neovim env Int64 window_set_height :: Window -> Int64 -> forall env. Neovim env () window_get_height :: Window -> forall env. Neovim env Int64 window_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () window_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) window_get_buffer :: Window -> forall env. Neovim env Buffer vim_call_function :: String -> [Object] -> forall env. Neovim env Object vim_eval :: String -> forall env. Neovim env Object vim_command :: String -> forall env. Neovim env () vim_get_api_info :: forall env. Neovim env [Object] vim_get_color_map :: forall env. Neovim env (Map String Object) vim_name_to_color :: String -> forall env. Neovim env Int64 vim_unsubscribe :: String -> forall env. Neovim env () vim_subscribe :: String -> forall env. Neovim env () vim_set_current_tabpage :: Tabpage -> forall env. Neovim env () vim_get_current_tabpage :: forall env. Neovim env Tabpage vim_get_tabpages :: forall env. Neovim env [Tabpage] vim_set_current_window :: Window -> forall env. Neovim env () vim_get_current_window :: forall env. Neovim env Window vim_get_windows :: forall env. Neovim env [Window] vim_set_current_buffer :: Buffer -> forall env. Neovim env () vim_get_current_buffer :: forall env. Neovim env Buffer vim_get_buffers :: forall env. Neovim env [Buffer] vim_report_error :: String -> forall env. Neovim env () vim_err_write :: String -> forall env. Neovim env () vim_out_write :: String -> forall env. Neovim env () vim_get_vvar :: String -> forall env. Neovim env Object vim_get_var :: String -> forall env. Neovim env Object vim_del_current_line :: forall env. Neovim env () vim_set_current_line :: String -> forall env. Neovim env () vim_get_current_line :: forall env. Neovim env String vim_change_directory :: String -> forall env. Neovim env () vim_list_runtime_paths :: forall env. Neovim env [String] vim_strwidth :: String -> forall env. Neovim env Int64 vim_replace_termcodes :: String -> Bool -> Bool -> Bool -> forall env. Neovim env String vim_input :: String -> forall env. Neovim env Int64 vim_feedkeys :: String -> String -> Bool -> forall env. Neovim env () ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env Object ui_detach :: forall env. Neovim env () tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool tabpage_get_window :: Tabpage -> forall env. Neovim env Window tabpage_get_var :: Tabpage -> String -> forall env. Neovim env Object tabpage_get_windows :: Tabpage -> forall env. Neovim env [Window] window_set_option :: Window -> String -> Object -> forall env. Neovim env () window_get_option :: Window -> String -> forall env. Neovim env Object buffer_set_option :: Buffer -> String -> Object -> forall env. Neovim env () buffer_get_option :: Buffer -> String -> forall env. Neovim env Object vim_get_option :: String -> forall env. Neovim env Object vim_set_option :: String -> Object -> forall env. Neovim env () buffer_add_highlight :: Buffer -> Int64 -> String -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 buffer_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () buffer_get_number :: Buffer -> forall env. Neovim env Int64 vim_command_output :: String -> forall env. Neovim env String buffer_get_mark :: Buffer -> String -> forall env. Neovim env (Int64, Int64) buffer_is_valid :: Buffer -> forall env. Neovim env Bool buffer_set_name :: Buffer -> String -> forall env. Neovim env () buffer_get_name :: Buffer -> forall env. Neovim env String buffer_get_var :: Buffer -> String -> forall env. Neovim env Object buffer_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> [String] -> forall env. Neovim env () buffer_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env [String] buffer_line_count :: Buffer -> forall env. Neovim env Int64 nvim_win_set_hl_ns :: Window -> Int64 -> forall env. Neovim env () nvim_win_call :: Window -> Int64 -> forall env. Neovim env Object nvim_win_close :: Window -> Bool -> forall env. Neovim env () nvim_win_hide :: Window -> forall env. Neovim env () nvim_win_is_valid :: Window -> forall env. Neovim env Bool nvim_win_get_number :: Window -> forall env. Neovim env Int64 nvim_win_get_tabpage :: Window -> forall env. Neovim env Tabpage nvim_win_get_position :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_del_var :: Window -> String -> forall env. Neovim env () nvim_win_set_var :: Window -> String -> Object -> forall env. Neovim env () nvim_win_get_var :: Window -> String -> forall env. Neovim env Object nvim_win_set_width :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_width :: Window -> forall env. Neovim env Int64 nvim_win_set_height :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_height :: Window -> forall env. Neovim env Int64 nvim_win_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () nvim_win_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_set_buf :: Window -> Buffer -> forall env. Neovim env () nvim_win_get_buf :: Window -> forall env. Neovim env Buffer nvim_win_get_config :: Window -> forall env. Neovim env (Map String Object) nvim_win_set_config :: Window -> Map String Object -> forall env. Neovim env () nvim_open_win :: Buffer -> Bool -> Map String Object -> forall env. Neovim env Window nvim_parse_expression :: String -> String -> Bool -> forall env. Neovim env (Map String Object) nvim_call_dict_function :: Object -> String -> [Object] -> forall env. Neovim env Object nvim_call_function :: String -> [Object] -> forall env. Neovim env Object nvim_eval :: String -> forall env. Neovim env Object nvim_command :: String -> forall env. Neovim env () nvim_exec :: String -> Bool -> forall env. Neovim env String nvim_eval_statusline :: String -> Map String Object -> forall env. Neovim env (Map String Object) nvim_get_mark :: String -> Map String Object -> forall env. Neovim env [Object] nvim_del_mark :: String -> forall env. Neovim env Bool nvim_select_popupmenu_item :: Int64 -> Bool -> Bool -> Map String Object -> forall env. Neovim env () nvim_get_proc :: Int64 -> forall env. Neovim env Object nvim_get_proc_children :: Int64 -> forall env. Neovim env [Object] nvim_list_uis :: forall env. Neovim env [Object] nvim_call_atomic :: [Object] -> forall env. Neovim env [Object] nvim_list_chans :: forall env. Neovim env [Object] nvim_get_chan_info :: Int64 -> forall env. Neovim env (Map String Object) nvim_set_client_info :: String -> Map String Object -> String -> Map String Object -> Map String Object -> forall env. Neovim env () nvim_get_api_info :: forall env. Neovim env [Object] nvim_del_keymap :: String -> String -> forall env. Neovim env () nvim_set_keymap :: String -> String -> String -> Map String Object -> forall env. Neovim env () nvim_get_keymap :: String -> forall env. Neovim env [Map String Object] nvim_get_mode :: forall env. Neovim env (Map String Object) nvim_load_context :: Map String Object -> forall env. Neovim env Object nvim_get_context :: Map String Object -> forall env. Neovim env (Map String Object) nvim_get_color_map :: forall env. Neovim env (Map String Object) nvim_get_color_by_name :: String -> forall env. Neovim env Int64 nvim_unsubscribe :: String -> forall env. Neovim env () nvim_subscribe :: String -> forall env. Neovim env () nvim_put :: [String] -> String -> Bool -> Bool -> forall env. Neovim env () nvim_paste :: String -> Bool -> Int64 -> forall env. Neovim env Bool nvim_set_current_tabpage :: Tabpage -> forall env. Neovim env () nvim_get_current_tabpage :: forall env. Neovim env Tabpage nvim_list_tabpages :: forall env. Neovim env [Tabpage] nvim_chan_send :: Int64 -> String -> forall env. Neovim env () nvim_open_term :: Buffer -> Map String Object -> forall env. Neovim env Int64 nvim_create_buf :: Bool -> Bool -> forall env. Neovim env Buffer nvim_set_current_win :: Window -> forall env. Neovim env () nvim_get_current_win :: forall env. Neovim env Window nvim_list_wins :: forall env. Neovim env [Window] nvim_set_current_buf :: Buffer -> forall env. Neovim env () nvim_get_current_buf :: forall env. Neovim env Buffer nvim_list_bufs :: forall env. Neovim env [Buffer] nvim_err_writeln :: String -> forall env. Neovim env () nvim_err_write :: String -> forall env. Neovim env () nvim_out_write :: String -> forall env. Neovim env () nvim_echo :: [Object] -> Bool -> Map String Object -> forall env. Neovim env () nvim_set_vvar :: String -> Object -> forall env. Neovim env () nvim_get_vvar :: String -> forall env. Neovim env Object nvim_del_var :: String -> forall env. Neovim env () nvim_set_var :: String -> Object -> forall env. Neovim env () nvim_get_var :: String -> forall env. Neovim env Object nvim_del_current_line :: forall env. Neovim env () nvim_set_current_line :: String -> forall env. Neovim env () nvim_get_current_line :: forall env. Neovim env String nvim_set_current_dir :: String -> forall env. Neovim env () nvim_get_runtime_file :: String -> Bool -> forall env. Neovim env [String] nvim_list_runtime_paths :: forall env. Neovim env [String] nvim_strwidth :: String -> forall env. Neovim env Int64 nvim_notify :: String -> Int64 -> Map String Object -> forall env. Neovim env Object nvim_exec_lua :: String -> [Object] -> forall env. Neovim env Object nvim_replace_termcodes :: String -> Bool -> Bool -> Bool -> forall env. Neovim env String nvim_input_mouse :: String -> String -> String -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_input :: String -> forall env. Neovim env Int64 nvim_feedkeys :: String -> String -> Bool -> forall env. Neovim env () nvim_set_hl_ns_fast :: Int64 -> forall env. Neovim env () nvim_set_hl_ns :: Int64 -> forall env. Neovim env () nvim_set_hl :: Int64 -> String -> Map String Object -> forall env. Neovim env () nvim_get_hl_id_by_name :: String -> forall env. Neovim env Int64 nvim_get_hl_by_id :: Int64 -> Bool -> forall env. Neovim env (Map String Object) nvim_get_hl_by_name :: String -> Bool -> forall env. Neovim env (Map String Object) nvim_ui_pum_set_bounds :: Double -> Double -> Double -> Double -> forall env. Neovim env () nvim_ui_pum_set_height :: Int64 -> forall env. Neovim env () nvim_ui_try_resize_grid :: Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_ui_set_option :: String -> Object -> forall env. Neovim env () nvim_ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env () nvim_ui_detach :: forall env. Neovim env () ui_attach :: Int64 -> Int64 -> Bool -> forall env. Neovim env () nvim_ui_attach :: Int64 -> Int64 -> Map String Object -> forall env. Neovim env () nvim_tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool nvim_tabpage_get_number :: Tabpage -> forall env. Neovim env Int64 nvim_tabpage_get_win :: Tabpage -> forall env. Neovim env Window nvim_tabpage_del_var :: Tabpage -> String -> forall env. Neovim env () nvim_tabpage_set_var :: Tabpage -> String -> Object -> forall env. Neovim env () nvim_tabpage_get_var :: Tabpage -> String -> forall env. Neovim env Object nvim_tabpage_list_wins :: Tabpage -> forall env. Neovim env [Window] nvim_win_set_option :: Window -> String -> Object -> forall env. Neovim env () nvim_win_get_option :: Window -> String -> forall env. Neovim env Object nvim_buf_set_option :: Buffer -> String -> Object -> forall env. Neovim env () nvim_buf_get_option :: Buffer -> String -> forall env. Neovim env Object nvim_get_option :: String -> forall env. Neovim env Object nvim_set_option :: String -> Object -> forall env. Neovim env () nvim_get_option_info :: String -> forall env. Neovim env (Map String Object) nvim_get_all_options_info :: forall env. Neovim env (Map String Object) nvim_set_option_value :: String -> Object -> Map String Object -> forall env. Neovim env () nvim_get_option_value :: String -> Map String Object -> forall env. Neovim env Object nvim_set_decoration_provider :: Int64 -> Map String Object -> forall env. Neovim env () nvim_buf_clear_namespace :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_add_highlight :: Buffer -> Int64 -> String -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 nvim_buf_del_extmark :: Buffer -> Int64 -> Int64 -> forall env. Neovim env Bool nvim_buf_set_extmark :: Buffer -> Int64 -> Int64 -> Int64 -> Map String Object -> forall env. Neovim env Int64 nvim_buf_get_extmarks :: Buffer -> Int64 -> Object -> Object -> Map String Object -> forall env. Neovim env [Object] nvim_buf_get_extmark_by_id :: Buffer -> Int64 -> Int64 -> Map String Object -> forall env. Neovim env [Int64] nvim_get_namespaces :: forall env. Neovim env (Map String Object) nvim_create_namespace :: String -> forall env. Neovim env Int64 vim_del_var :: String -> forall env. Neovim env Object vim_set_var :: String -> Object -> forall env. Neovim env Object tabpage_del_var :: Tabpage -> String -> forall env. Neovim env Object tabpage_set_var :: Tabpage -> String -> Object -> forall env. Neovim env Object window_del_var :: Window -> String -> forall env. Neovim env Object window_set_var :: Window -> String -> Object -> forall env. Neovim env Object buffer_del_var :: Buffer -> String -> forall env. Neovim env Object buffer_set_var :: Buffer -> String -> Object -> forall env. Neovim env Object buffer_set_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> [String] -> forall env. Neovim env () buffer_get_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> forall env. Neovim env [String] buffer_del_line :: Buffer -> Int64 -> forall env. Neovim env () buffer_set_line :: Buffer -> Int64 -> String -> forall env. Neovim env () buffer_get_line :: Buffer -> Int64 -> forall env. Neovim env String buffer_insert :: Buffer -> Int64 -> [String] -> forall env. Neovim env () nvim_buf_set_virtual_text :: Buffer -> Int64 -> Int64 -> [Object] -> Map String Object -> forall env. Neovim env Int64 nvim_buf_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_get_number :: Buffer -> forall env. Neovim env Int64 nvim_execute_lua :: String -> [Object] -> forall env. Neovim env Object nvim_command_output :: String -> forall env. Neovim env String nvim_buf_get_commands :: Buffer -> Map String Object -> forall env. Neovim env (Map String Object) nvim_get_commands :: Map String Object -> forall env. Neovim env (Map String Object) nvim_buf_del_user_command :: Buffer -> String -> forall env. Neovim env () nvim_buf_create_user_command :: Buffer -> String -> Object -> Map String Object -> forall env. Neovim env () nvim_del_user_command :: String -> forall env. Neovim env () nvim_create_user_command :: String -> Object -> Map String Object -> forall env. Neovim env () nvim_cmd :: Map String Object -> Map String Object -> forall env. Neovim env String nvim_parse_cmd :: String -> Map String Object -> forall env. Neovim env (Map String Object) nvim_buf_call :: Buffer -> Int64 -> forall env. Neovim env Object nvim_buf_get_mark :: Buffer -> String -> forall env. Neovim env (Int64, Int64) nvim_buf_set_mark :: Buffer -> String -> Int64 -> Int64 -> Map String Object -> forall env. Neovim env Bool nvim_buf_del_mark :: Buffer -> String -> forall env. Neovim env Bool nvim_buf_is_valid :: Buffer -> forall env. Neovim env Bool nvim_buf_delete :: Buffer -> Map String Object -> forall env. Neovim env () nvim_buf_is_loaded :: Buffer -> forall env. Neovim env Bool nvim_buf_set_name :: Buffer -> String -> forall env. Neovim env () nvim_buf_get_name :: Buffer -> forall env. Neovim env String nvim_buf_del_var :: Buffer -> String -> forall env. Neovim env () nvim_buf_set_var :: Buffer -> String -> Object -> forall env. Neovim env () nvim_buf_del_keymap :: Buffer -> String -> String -> forall env. Neovim env () nvim_buf_set_keymap :: Buffer -> String -> String -> String -> Map String Object -> forall env. Neovim env () nvim_buf_get_keymap :: Buffer -> String -> forall env. Neovim env [Map String Object] nvim_buf_get_changedtick :: Buffer -> forall env. Neovim env Int64 nvim_buf_get_var :: Buffer -> String -> forall env. Neovim env Object nvim_buf_get_offset :: Buffer -> Int64 -> forall env. Neovim env Int64 nvim_buf_get_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> Map String Object -> forall env. Neovim env [String] nvim_buf_set_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> [String] -> forall env. Neovim env () nvim_buf_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> [String] -> forall env. Neovim env () nvim_buf_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env [String] nvim_buf_detach :: Buffer -> forall env. Neovim env Bool nvim_buf_attach :: Buffer -> Bool -> Map String Object -> forall env. Neovim env Bool nvim_buf_line_count :: Buffer -> forall env. Neovim env Int64 nvim_exec_autocmds :: Object -> Map String Object -> forall env. Neovim env () nvim_del_augroup_by_name :: String -> forall env. Neovim env () nvim_del_augroup_by_id :: Int64 -> forall env. Neovim env () nvim_create_augroup :: String -> Map String Object -> forall env. Neovim env Int64 nvim_clear_autocmds :: Map String Object -> forall env. Neovim env () nvim_del_autocmd :: Int64 -> forall env. Neovim env () nvim_create_autocmd :: Object -> Map String Object -> forall env. Neovim env Int64 nvim_get_autocmds :: Map String Object -> forall env. Neovim env [Object] instance GHC.Generics.Generic Neovim.API.String.NeovimExceptionGen instance GHC.Show.Show Neovim.API.String.NeovimExceptionGen instance GHC.Classes.Eq Neovim.API.String.NeovimExceptionGen instance GHC.Generics.Generic Neovim.API.String.Buffer instance GHC.Show.Show Neovim.API.String.Buffer instance GHC.Classes.Eq Neovim.API.String.Buffer instance GHC.Generics.Generic Neovim.API.String.Tabpage instance GHC.Show.Show Neovim.API.String.Tabpage instance GHC.Classes.Eq Neovim.API.String.Tabpage instance GHC.Generics.Generic Neovim.API.String.Window instance GHC.Show.Show Neovim.API.String.Window instance GHC.Classes.Eq Neovim.API.String.Window instance Control.DeepSeq.NFData Neovim.API.String.Window instance Neovim.Classes.NvimObject Neovim.API.String.Window instance Control.DeepSeq.NFData Neovim.API.String.Tabpage instance Neovim.Classes.NvimObject Neovim.API.String.Tabpage instance Control.DeepSeq.NFData Neovim.API.String.Buffer instance Neovim.Classes.NvimObject Neovim.API.String.Buffer instance Control.DeepSeq.NFData Neovim.API.String.NeovimExceptionGen instance GHC.Exception.Type.Exception Neovim.API.String.NeovimExceptionGen instance Neovim.Classes.NvimObject Neovim.API.String.NeovimExceptionGen module Neovim.Quickfix -- | This is a wrapper around neovim's setqflist(). -- strType can be any string that you can append to (hence -- Monoid) that is also an instance of NvimObject. You can -- e.g. use the plain old String. setqflist :: (Monoid strType, NvimObject strType) => [QuickfixListItem strType] -> QuickfixAction -> Neovim env () data ColumnNumber VisualColumn :: Int -> ColumnNumber ByteIndexColumn :: Int -> ColumnNumber NoColumn :: ColumnNumber data SignLocation strType LineNumber :: Int -> SignLocation strType SearchPattern :: strType -> SignLocation strType -- | Quickfix list item. The parameter names should mostly conform to those -- in :h setqflist(). Some fields are merged to explicitly state -- mutually exclusive elements or some other behavior of the fields. -- -- see quickfixListItem for creating a value of this type without -- typing too much. data QuickfixListItem strType QFItem :: Either Int strType -> Either Int strType -> ColumnNumber -> Maybe Int -> strType -> QuickfixErrorType -> QuickfixListItem strType -- | Since the filename is only used if no buffer can be specified, this -- field is a merge of bufnr and filename. [bufOrFile] :: QuickfixListItem strType -> Either Int strType -- | Line number or search pattern to locate the error. [lnumOrPattern] :: QuickfixListItem strType -> Either Int strType -- | A tuple of a column number and a boolean indicating which kind of -- indexing should be used. True means that the visual column -- should be used. False means to use the byte index. [col] :: QuickfixListItem strType -> ColumnNumber -- | Error number. [nr] :: QuickfixListItem strType -> Maybe Int -- | Description of the error. [text] :: QuickfixListItem strType -> strType -- | Type of error. [errorType] :: QuickfixListItem strType -> QuickfixErrorType -- | Simple error type enum. data QuickfixErrorType Warning :: QuickfixErrorType Error :: QuickfixErrorType -- | Create a QuickfixListItem by providing the minimal amount of -- arguments needed. quickfixListItem :: Monoid strType => Either Int strType -> Either Int strType -> QuickfixListItem strType data QuickfixAction -- | Add items to the current list (or create a new one if none exists). Append :: QuickfixAction -- | Replace current list (or create a new one if none exists). Replace :: QuickfixAction -- | Create a new list. New :: QuickfixAction instance GHC.Generics.Generic Neovim.Quickfix.ColumnNumber instance GHC.Show.Show Neovim.Quickfix.ColumnNumber instance GHC.Classes.Ord Neovim.Quickfix.ColumnNumber instance GHC.Classes.Eq Neovim.Quickfix.ColumnNumber instance GHC.Generics.Generic (Neovim.Quickfix.SignLocation strType) instance GHC.Show.Show strType => GHC.Show.Show (Neovim.Quickfix.SignLocation strType) instance GHC.Classes.Ord strType => GHC.Classes.Ord (Neovim.Quickfix.SignLocation strType) instance GHC.Classes.Eq strType => GHC.Classes.Eq (Neovim.Quickfix.SignLocation strType) instance GHC.Generics.Generic Neovim.Quickfix.QuickfixErrorType instance GHC.Enum.Bounded Neovim.Quickfix.QuickfixErrorType instance GHC.Enum.Enum Neovim.Quickfix.QuickfixErrorType instance GHC.Read.Read Neovim.Quickfix.QuickfixErrorType instance GHC.Show.Show Neovim.Quickfix.QuickfixErrorType instance GHC.Classes.Ord Neovim.Quickfix.QuickfixErrorType instance GHC.Classes.Eq Neovim.Quickfix.QuickfixErrorType instance GHC.Generics.Generic (Neovim.Quickfix.QuickfixListItem strType) instance GHC.Show.Show strType => GHC.Show.Show (Neovim.Quickfix.QuickfixListItem strType) instance GHC.Classes.Eq strType => GHC.Classes.Eq (Neovim.Quickfix.QuickfixListItem strType) instance GHC.Generics.Generic Neovim.Quickfix.QuickfixAction instance GHC.Show.Show Neovim.Quickfix.QuickfixAction instance GHC.Enum.Bounded Neovim.Quickfix.QuickfixAction instance GHC.Enum.Enum Neovim.Quickfix.QuickfixAction instance GHC.Classes.Ord Neovim.Quickfix.QuickfixAction instance GHC.Classes.Eq Neovim.Quickfix.QuickfixAction instance Control.DeepSeq.NFData Neovim.Quickfix.QuickfixAction instance Neovim.Classes.NvimObject Neovim.Quickfix.QuickfixAction instance Control.DeepSeq.NFData strType => Control.DeepSeq.NFData (Neovim.Quickfix.QuickfixListItem strType) instance (GHC.Base.Monoid strType, Neovim.Classes.NvimObject strType) => Neovim.Classes.NvimObject (Neovim.Quickfix.QuickfixListItem strType) instance Control.DeepSeq.NFData Neovim.Quickfix.QuickfixErrorType instance Neovim.Classes.NvimObject Neovim.Quickfix.QuickfixErrorType instance Control.DeepSeq.NFData strType => Control.DeepSeq.NFData (Neovim.Quickfix.SignLocation strType) instance Control.DeepSeq.NFData Neovim.Quickfix.ColumnNumber module Neovim.Plugin startPluginThreads :: Config () -> [Neovim () NeovimPlugin] -> IO (Either (Doc AnsiStyle) ([FunctionMapEntry], [Async ()])) -- | Wrap a Plugin in some nice blankets, so that we can put them in -- a simple list. wrapPlugin :: Applicative m => Plugin env -> m NeovimPlugin -- | Plugin values are wraped inside this data type via -- wrapPlugin so that we can put plugins in an ordinary list. data NeovimPlugin -- | This data type contains meta information for the plugin manager. data Plugin env Plugin :: env -> [ExportedFunctionality env] -> Plugin env [environment] :: Plugin env -> env [exports] :: Plugin env -> [ExportedFunctionality env] -- | This option detemines how neovim should behave when calling some -- functionality on a remote host. data Synchronous -- | Call the functionality entirely for its side effects and do not wait -- for it to finish. Calling a functionality with this flag set is -- completely asynchronous and nothing is really expected to happen. This -- is why a call like this is called notification on the neovim side of -- things. Async :: Synchronous -- | Call the function and wait for its result. This is only synchronous on -- the neovim side. This means that the GUI will (probably) not allow any -- user input until a reult is received. Sync :: Synchronous -- | Options for commands. -- -- Some command can also be described by using the OverloadedString -- extensions. This means that you can write a literal String -- inside your source file in place for a CommandOption value. See -- the documentation for each value on how these strings should look like -- (Both versions are compile time checked.) data CommandOption -- | Stringliteral "sync" or "async" CmdSync :: Synchronous -> CommandOption -- | Register passed to the command. -- -- Stringliteral: "\"" CmdRegister :: CommandOption -- | Command takes a specific amount of arguments -- -- Automatically set via template haskell functions. You really shouldn't -- use this option yourself unless you have to. CmdNargs :: String -> CommandOption -- | Determines how neovim passes the range. -- -- Stringliterals: "%" for WholeFile, "," for line and ",123" for -- 123 lines. CmdRange :: RangeSpecification -> CommandOption -- | Command handles a count. The argument defines the default count. -- -- Stringliteral: string of numbers (e.g. "132") CmdCount :: Word -> CommandOption -- | Command handles a bang -- -- Stringliteral: "!" CmdBang :: CommandOption -- | Verbatim string passed to the -complete= command attribute CmdComplete :: String -> CommandOption -- | Register an autocmd in the current context. This means that, if you -- are currently in a stateful plugin, the function will be called in the -- current thread and has access to the configuration and state of this -- thread. . -- -- Note that the function you pass must be fully applied. addAutocmd :: Text -> Synchronous -> AutocmdOptions -> Neovim env () -> Neovim env (Either (Doc AnsiStyle) FunctionMapEntry) registerPlugin :: (FunctionMapEntry -> Neovim env ()) -> FunctionalityDescription -> ([Object] -> Neovim env Object) -> TQueue SomeMessage -> TVar (Map NvimMethod ([Object] -> Neovim env Object)) -> Neovim env (Maybe FunctionMapEntry) registerFunctionality :: FunctionalityDescription -> ([Object] -> Neovim env Object) -> Neovim env (Either (Doc AnsiStyle) FunctionMapEntry) -- | Return or retrive the provider name that the current instance is -- associated with on the neovim side. getProviderName :: Neovim env (Either String Int) module Neovim.API.ByteString data NeovimExceptionGen NeovimException :: !ByteString -> NeovimExceptionGen NeovimValidation :: !ByteString -> NeovimExceptionGen data Buffer Buffer :: !ByteString -> Buffer data Tabpage Tabpage :: !ByteString -> Tabpage data Window Window :: !ByteString -> Window window_is_valid :: Window -> forall env. Neovim env Bool window_get_tabpage :: Window -> forall env. Neovim env Tabpage window_get_position :: Window -> forall env. Neovim env (Int64, Int64) window_get_var :: Window -> ByteString -> forall env. Neovim env Object window_set_width :: Window -> Int64 -> forall env. Neovim env () window_get_width :: Window -> forall env. Neovim env Int64 window_set_height :: Window -> Int64 -> forall env. Neovim env () window_get_height :: Window -> forall env. Neovim env Int64 window_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () window_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) window_get_buffer :: Window -> forall env. Neovim env Buffer vim_call_function :: ByteString -> Vector Object -> forall env. Neovim env Object vim_eval :: ByteString -> forall env. Neovim env Object vim_command :: ByteString -> forall env. Neovim env () vim_get_api_info :: forall env. Neovim env (Vector Object) vim_get_color_map :: forall env. Neovim env (Map ByteString Object) vim_name_to_color :: ByteString -> forall env. Neovim env Int64 vim_unsubscribe :: ByteString -> forall env. Neovim env () vim_subscribe :: ByteString -> forall env. Neovim env () vim_set_current_tabpage :: Tabpage -> forall env. Neovim env () vim_get_current_tabpage :: forall env. Neovim env Tabpage vim_get_tabpages :: forall env. Neovim env (Vector Tabpage) vim_set_current_window :: Window -> forall env. Neovim env () vim_get_current_window :: forall env. Neovim env Window vim_get_windows :: forall env. Neovim env (Vector Window) vim_set_current_buffer :: Buffer -> forall env. Neovim env () vim_get_current_buffer :: forall env. Neovim env Buffer vim_get_buffers :: forall env. Neovim env (Vector Buffer) vim_report_error :: ByteString -> forall env. Neovim env () vim_err_write :: ByteString -> forall env. Neovim env () vim_out_write :: ByteString -> forall env. Neovim env () vim_get_vvar :: ByteString -> forall env. Neovim env Object vim_get_var :: ByteString -> forall env. Neovim env Object vim_del_current_line :: forall env. Neovim env () vim_set_current_line :: ByteString -> forall env. Neovim env () vim_get_current_line :: forall env. Neovim env ByteString vim_change_directory :: ByteString -> forall env. Neovim env () vim_list_runtime_paths :: forall env. Neovim env (Vector ByteString) vim_strwidth :: ByteString -> forall env. Neovim env Int64 vim_replace_termcodes :: ByteString -> Bool -> Bool -> Bool -> forall env. Neovim env ByteString vim_input :: ByteString -> forall env. Neovim env Int64 vim_feedkeys :: ByteString -> ByteString -> Bool -> forall env. Neovim env () ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env Object ui_detach :: forall env. Neovim env () tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool tabpage_get_window :: Tabpage -> forall env. Neovim env Window tabpage_get_var :: Tabpage -> ByteString -> forall env. Neovim env Object tabpage_get_windows :: Tabpage -> forall env. Neovim env (Vector Window) window_set_option :: Window -> ByteString -> Object -> forall env. Neovim env () window_get_option :: Window -> ByteString -> forall env. Neovim env Object buffer_set_option :: Buffer -> ByteString -> Object -> forall env. Neovim env () buffer_get_option :: Buffer -> ByteString -> forall env. Neovim env Object vim_get_option :: ByteString -> forall env. Neovim env Object vim_set_option :: ByteString -> Object -> forall env. Neovim env () buffer_add_highlight :: Buffer -> Int64 -> ByteString -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 buffer_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () buffer_get_number :: Buffer -> forall env. Neovim env Int64 vim_command_output :: ByteString -> forall env. Neovim env ByteString buffer_get_mark :: Buffer -> ByteString -> forall env. Neovim env (Int64, Int64) buffer_is_valid :: Buffer -> forall env. Neovim env Bool buffer_set_name :: Buffer -> ByteString -> forall env. Neovim env () buffer_get_name :: Buffer -> forall env. Neovim env ByteString buffer_get_var :: Buffer -> ByteString -> forall env. Neovim env Object buffer_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> Vector ByteString -> forall env. Neovim env () buffer_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env (Vector ByteString) buffer_line_count :: Buffer -> forall env. Neovim env Int64 nvim_win_set_hl_ns :: Window -> Int64 -> forall env. Neovim env () nvim_win_call :: Window -> Int64 -> forall env. Neovim env Object nvim_win_close :: Window -> Bool -> forall env. Neovim env () nvim_win_hide :: Window -> forall env. Neovim env () nvim_win_is_valid :: Window -> forall env. Neovim env Bool nvim_win_get_number :: Window -> forall env. Neovim env Int64 nvim_win_get_tabpage :: Window -> forall env. Neovim env Tabpage nvim_win_get_position :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_del_var :: Window -> ByteString -> forall env. Neovim env () nvim_win_set_var :: Window -> ByteString -> Object -> forall env. Neovim env () nvim_win_get_var :: Window -> ByteString -> forall env. Neovim env Object nvim_win_set_width :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_width :: Window -> forall env. Neovim env Int64 nvim_win_set_height :: Window -> Int64 -> forall env. Neovim env () nvim_win_get_height :: Window -> forall env. Neovim env Int64 nvim_win_set_cursor :: Window -> (Int64, Int64) -> forall env. Neovim env () nvim_win_get_cursor :: Window -> forall env. Neovim env (Int64, Int64) nvim_win_set_buf :: Window -> Buffer -> forall env. Neovim env () nvim_win_get_buf :: Window -> forall env. Neovim env Buffer nvim_win_get_config :: Window -> forall env. Neovim env (Map ByteString Object) nvim_win_set_config :: Window -> Map ByteString Object -> forall env. Neovim env () nvim_open_win :: Buffer -> Bool -> Map ByteString Object -> forall env. Neovim env Window nvim_parse_expression :: ByteString -> ByteString -> Bool -> forall env. Neovim env (Map ByteString Object) nvim_call_dict_function :: Object -> ByteString -> Vector Object -> forall env. Neovim env Object nvim_call_function :: ByteString -> Vector Object -> forall env. Neovim env Object nvim_eval :: ByteString -> forall env. Neovim env Object nvim_command :: ByteString -> forall env. Neovim env () nvim_exec :: ByteString -> Bool -> forall env. Neovim env ByteString nvim_eval_statusline :: ByteString -> Map ByteString Object -> forall env. Neovim env (Map ByteString Object) nvim_get_mark :: ByteString -> Map ByteString Object -> forall env. Neovim env (Vector Object) nvim_del_mark :: ByteString -> forall env. Neovim env Bool nvim_select_popupmenu_item :: Int64 -> Bool -> Bool -> Map ByteString Object -> forall env. Neovim env () nvim_get_proc :: Int64 -> forall env. Neovim env Object nvim_get_proc_children :: Int64 -> forall env. Neovim env (Vector Object) nvim_list_uis :: forall env. Neovim env (Vector Object) nvim_call_atomic :: Vector Object -> forall env. Neovim env (Vector Object) nvim_list_chans :: forall env. Neovim env (Vector Object) nvim_get_chan_info :: Int64 -> forall env. Neovim env (Map ByteString Object) nvim_set_client_info :: ByteString -> Map ByteString Object -> ByteString -> Map ByteString Object -> Map ByteString Object -> forall env. Neovim env () nvim_get_api_info :: forall env. Neovim env (Vector Object) nvim_del_keymap :: ByteString -> ByteString -> forall env. Neovim env () nvim_set_keymap :: ByteString -> ByteString -> ByteString -> Map ByteString Object -> forall env. Neovim env () nvim_get_keymap :: ByteString -> forall env. Neovim env (Vector (Map ByteString Object)) nvim_get_mode :: forall env. Neovim env (Map ByteString Object) nvim_load_context :: Map ByteString Object -> forall env. Neovim env Object nvim_get_context :: Map ByteString Object -> forall env. Neovim env (Map ByteString Object) nvim_get_color_map :: forall env. Neovim env (Map ByteString Object) nvim_get_color_by_name :: ByteString -> forall env. Neovim env Int64 nvim_unsubscribe :: ByteString -> forall env. Neovim env () nvim_subscribe :: ByteString -> forall env. Neovim env () nvim_put :: Vector ByteString -> ByteString -> Bool -> Bool -> forall env. Neovim env () nvim_paste :: ByteString -> Bool -> Int64 -> forall env. Neovim env Bool nvim_set_current_tabpage :: Tabpage -> forall env. Neovim env () nvim_get_current_tabpage :: forall env. Neovim env Tabpage nvim_list_tabpages :: forall env. Neovim env (Vector Tabpage) nvim_chan_send :: Int64 -> ByteString -> forall env. Neovim env () nvim_open_term :: Buffer -> Map ByteString Object -> forall env. Neovim env Int64 nvim_create_buf :: Bool -> Bool -> forall env. Neovim env Buffer nvim_set_current_win :: Window -> forall env. Neovim env () nvim_get_current_win :: forall env. Neovim env Window nvim_list_wins :: forall env. Neovim env (Vector Window) nvim_set_current_buf :: Buffer -> forall env. Neovim env () nvim_get_current_buf :: forall env. Neovim env Buffer nvim_list_bufs :: forall env. Neovim env (Vector Buffer) nvim_err_writeln :: ByteString -> forall env. Neovim env () nvim_err_write :: ByteString -> forall env. Neovim env () nvim_out_write :: ByteString -> forall env. Neovim env () nvim_echo :: Vector Object -> Bool -> Map ByteString Object -> forall env. Neovim env () nvim_set_vvar :: ByteString -> Object -> forall env. Neovim env () nvim_get_vvar :: ByteString -> forall env. Neovim env Object nvim_del_var :: ByteString -> forall env. Neovim env () nvim_set_var :: ByteString -> Object -> forall env. Neovim env () nvim_get_var :: ByteString -> forall env. Neovim env Object nvim_del_current_line :: forall env. Neovim env () nvim_set_current_line :: ByteString -> forall env. Neovim env () nvim_get_current_line :: forall env. Neovim env ByteString nvim_set_current_dir :: ByteString -> forall env. Neovim env () nvim_get_runtime_file :: ByteString -> Bool -> forall env. Neovim env (Vector ByteString) nvim_list_runtime_paths :: forall env. Neovim env (Vector ByteString) nvim_strwidth :: ByteString -> forall env. Neovim env Int64 nvim_notify :: ByteString -> Int64 -> Map ByteString Object -> forall env. Neovim env Object nvim_exec_lua :: ByteString -> Vector Object -> forall env. Neovim env Object nvim_replace_termcodes :: ByteString -> Bool -> Bool -> Bool -> forall env. Neovim env ByteString nvim_input_mouse :: ByteString -> ByteString -> ByteString -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_input :: ByteString -> forall env. Neovim env Int64 nvim_feedkeys :: ByteString -> ByteString -> Bool -> forall env. Neovim env () nvim_set_hl_ns_fast :: Int64 -> forall env. Neovim env () nvim_set_hl_ns :: Int64 -> forall env. Neovim env () nvim_set_hl :: Int64 -> ByteString -> Map ByteString Object -> forall env. Neovim env () nvim_get_hl_id_by_name :: ByteString -> forall env. Neovim env Int64 nvim_get_hl_by_id :: Int64 -> Bool -> forall env. Neovim env (Map ByteString Object) nvim_get_hl_by_name :: ByteString -> Bool -> forall env. Neovim env (Map ByteString Object) nvim_ui_pum_set_bounds :: Double -> Double -> Double -> Double -> forall env. Neovim env () nvim_ui_pum_set_height :: Int64 -> forall env. Neovim env () nvim_ui_try_resize_grid :: Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_ui_set_option :: ByteString -> Object -> forall env. Neovim env () nvim_ui_try_resize :: Int64 -> Int64 -> forall env. Neovim env () nvim_ui_detach :: forall env. Neovim env () ui_attach :: Int64 -> Int64 -> Bool -> forall env. Neovim env () nvim_ui_attach :: Int64 -> Int64 -> Map ByteString Object -> forall env. Neovim env () nvim_tabpage_is_valid :: Tabpage -> forall env. Neovim env Bool nvim_tabpage_get_number :: Tabpage -> forall env. Neovim env Int64 nvim_tabpage_get_win :: Tabpage -> forall env. Neovim env Window nvim_tabpage_del_var :: Tabpage -> ByteString -> forall env. Neovim env () nvim_tabpage_set_var :: Tabpage -> ByteString -> Object -> forall env. Neovim env () nvim_tabpage_get_var :: Tabpage -> ByteString -> forall env. Neovim env Object nvim_tabpage_list_wins :: Tabpage -> forall env. Neovim env (Vector Window) nvim_win_set_option :: Window -> ByteString -> Object -> forall env. Neovim env () nvim_win_get_option :: Window -> ByteString -> forall env. Neovim env Object nvim_buf_set_option :: Buffer -> ByteString -> Object -> forall env. Neovim env () nvim_buf_get_option :: Buffer -> ByteString -> forall env. Neovim env Object nvim_get_option :: ByteString -> forall env. Neovim env Object nvim_set_option :: ByteString -> Object -> forall env. Neovim env () nvim_get_option_info :: ByteString -> forall env. Neovim env (Map ByteString Object) nvim_get_all_options_info :: forall env. Neovim env (Map ByteString Object) nvim_set_option_value :: ByteString -> Object -> Map ByteString Object -> forall env. Neovim env () nvim_get_option_value :: ByteString -> Map ByteString Object -> forall env. Neovim env Object nvim_set_decoration_provider :: Int64 -> Map ByteString Object -> forall env. Neovim env () nvim_buf_clear_namespace :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_add_highlight :: Buffer -> Int64 -> ByteString -> Int64 -> Int64 -> Int64 -> forall env. Neovim env Int64 nvim_buf_del_extmark :: Buffer -> Int64 -> Int64 -> forall env. Neovim env Bool nvim_buf_set_extmark :: Buffer -> Int64 -> Int64 -> Int64 -> Map ByteString Object -> forall env. Neovim env Int64 nvim_buf_get_extmarks :: Buffer -> Int64 -> Object -> Object -> Map ByteString Object -> forall env. Neovim env (Vector Object) nvim_buf_get_extmark_by_id :: Buffer -> Int64 -> Int64 -> Map ByteString Object -> forall env. Neovim env (Vector Int64) nvim_get_namespaces :: forall env. Neovim env (Map ByteString Object) nvim_create_namespace :: ByteString -> forall env. Neovim env Int64 vim_del_var :: ByteString -> forall env. Neovim env Object vim_set_var :: ByteString -> Object -> forall env. Neovim env Object tabpage_del_var :: Tabpage -> ByteString -> forall env. Neovim env Object tabpage_set_var :: Tabpage -> ByteString -> Object -> forall env. Neovim env Object window_del_var :: Window -> ByteString -> forall env. Neovim env Object window_set_var :: Window -> ByteString -> Object -> forall env. Neovim env Object buffer_del_var :: Buffer -> ByteString -> forall env. Neovim env Object buffer_set_var :: Buffer -> ByteString -> Object -> forall env. Neovim env Object buffer_set_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> Vector ByteString -> forall env. Neovim env () buffer_get_line_slice :: Buffer -> Int64 -> Int64 -> Bool -> Bool -> forall env. Neovim env (Vector ByteString) buffer_del_line :: Buffer -> Int64 -> forall env. Neovim env () buffer_set_line :: Buffer -> Int64 -> ByteString -> forall env. Neovim env () buffer_get_line :: Buffer -> Int64 -> forall env. Neovim env ByteString buffer_insert :: Buffer -> Int64 -> Vector ByteString -> forall env. Neovim env () nvim_buf_set_virtual_text :: Buffer -> Int64 -> Int64 -> Vector Object -> Map ByteString Object -> forall env. Neovim env Int64 nvim_buf_clear_highlight :: Buffer -> Int64 -> Int64 -> Int64 -> forall env. Neovim env () nvim_buf_get_number :: Buffer -> forall env. Neovim env Int64 nvim_execute_lua :: ByteString -> Vector Object -> forall env. Neovim env Object nvim_command_output :: ByteString -> forall env. Neovim env ByteString nvim_buf_get_commands :: Buffer -> Map ByteString Object -> forall env. Neovim env (Map ByteString Object) nvim_get_commands :: Map ByteString Object -> forall env. Neovim env (Map ByteString Object) nvim_buf_del_user_command :: Buffer -> ByteString -> forall env. Neovim env () nvim_buf_create_user_command :: Buffer -> ByteString -> Object -> Map ByteString Object -> forall env. Neovim env () nvim_del_user_command :: ByteString -> forall env. Neovim env () nvim_create_user_command :: ByteString -> Object -> Map ByteString Object -> forall env. Neovim env () nvim_cmd :: Map ByteString Object -> Map ByteString Object -> forall env. Neovim env ByteString nvim_parse_cmd :: ByteString -> Map ByteString Object -> forall env. Neovim env (Map ByteString Object) nvim_buf_call :: Buffer -> Int64 -> forall env. Neovim env Object nvim_buf_get_mark :: Buffer -> ByteString -> forall env. Neovim env (Int64, Int64) nvim_buf_set_mark :: Buffer -> ByteString -> Int64 -> Int64 -> Map ByteString Object -> forall env. Neovim env Bool nvim_buf_del_mark :: Buffer -> ByteString -> forall env. Neovim env Bool nvim_buf_is_valid :: Buffer -> forall env. Neovim env Bool nvim_buf_delete :: Buffer -> Map ByteString Object -> forall env. Neovim env () nvim_buf_is_loaded :: Buffer -> forall env. Neovim env Bool nvim_buf_set_name :: Buffer -> ByteString -> forall env. Neovim env () nvim_buf_get_name :: Buffer -> forall env. Neovim env ByteString nvim_buf_del_var :: Buffer -> ByteString -> forall env. Neovim env () nvim_buf_set_var :: Buffer -> ByteString -> Object -> forall env. Neovim env () nvim_buf_del_keymap :: Buffer -> ByteString -> ByteString -> forall env. Neovim env () nvim_buf_set_keymap :: Buffer -> ByteString -> ByteString -> ByteString -> Map ByteString Object -> forall env. Neovim env () nvim_buf_get_keymap :: Buffer -> ByteString -> forall env. Neovim env (Vector (Map ByteString Object)) nvim_buf_get_changedtick :: Buffer -> forall env. Neovim env Int64 nvim_buf_get_var :: Buffer -> ByteString -> forall env. Neovim env Object nvim_buf_get_offset :: Buffer -> Int64 -> forall env. Neovim env Int64 nvim_buf_get_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> Map ByteString Object -> forall env. Neovim env (Vector ByteString) nvim_buf_set_text :: Buffer -> Int64 -> Int64 -> Int64 -> Int64 -> Vector ByteString -> forall env. Neovim env () nvim_buf_set_lines :: Buffer -> Int64 -> Int64 -> Bool -> Vector ByteString -> forall env. Neovim env () nvim_buf_get_lines :: Buffer -> Int64 -> Int64 -> Bool -> forall env. Neovim env (Vector ByteString) nvim_buf_detach :: Buffer -> forall env. Neovim env Bool nvim_buf_attach :: Buffer -> Bool -> Map ByteString Object -> forall env. Neovim env Bool nvim_buf_line_count :: Buffer -> forall env. Neovim env Int64 nvim_exec_autocmds :: Object -> Map ByteString Object -> forall env. Neovim env () nvim_del_augroup_by_name :: ByteString -> forall env. Neovim env () nvim_del_augroup_by_id :: Int64 -> forall env. Neovim env () nvim_create_augroup :: ByteString -> Map ByteString Object -> forall env. Neovim env Int64 nvim_clear_autocmds :: Map ByteString Object -> forall env. Neovim env () nvim_del_autocmd :: Int64 -> forall env. Neovim env () nvim_create_autocmd :: Object -> Map ByteString Object -> forall env. Neovim env Int64 nvim_get_autocmds :: Map ByteString Object -> forall env. Neovim env (Vector Object) instance GHC.Generics.Generic Neovim.API.ByteString.NeovimExceptionGen instance GHC.Show.Show Neovim.API.ByteString.NeovimExceptionGen instance GHC.Classes.Eq Neovim.API.ByteString.NeovimExceptionGen instance GHC.Generics.Generic Neovim.API.ByteString.Buffer instance GHC.Show.Show Neovim.API.ByteString.Buffer instance GHC.Classes.Eq Neovim.API.ByteString.Buffer instance GHC.Generics.Generic Neovim.API.ByteString.Tabpage instance GHC.Show.Show Neovim.API.ByteString.Tabpage instance GHC.Classes.Eq Neovim.API.ByteString.Tabpage instance GHC.Generics.Generic Neovim.API.ByteString.Window instance GHC.Show.Show Neovim.API.ByteString.Window instance GHC.Classes.Eq Neovim.API.ByteString.Window instance Control.DeepSeq.NFData Neovim.API.ByteString.Window instance Neovim.Classes.NvimObject Neovim.API.ByteString.Window instance Control.DeepSeq.NFData Neovim.API.ByteString.Tabpage instance Neovim.Classes.NvimObject Neovim.API.ByteString.Tabpage instance Control.DeepSeq.NFData Neovim.API.ByteString.Buffer instance Neovim.Classes.NvimObject Neovim.API.ByteString.Buffer instance Control.DeepSeq.NFData Neovim.API.ByteString.NeovimExceptionGen instance GHC.Exception.Type.Exception Neovim.API.ByteString.NeovimExceptionGen instance Neovim.Classes.NvimObject Neovim.API.ByteString.NeovimExceptionGen module Neovim.RPC.SocketReader -- | This function will establish a connection to the given socket and read -- msgpack-rpc events from it. runSocketReader :: Handle -> Config RPCConfig -> IO () parseParams :: FunctionalityDescription -> [Object] -> [Object] module Neovim.Util -- | when with a monadic predicate. whenM :: Monad m => m Bool -> m () -> m () -- | unless with a monadic predicate. unlessM :: Monad m => m Bool -> m () -> m () oneLineErrorMessage :: Doc AnsiStyle -> Text module Neovim.Main logger :: String data CommandLineOptions Opt :: Maybe String -> Maybe (String, Int) -> Maybe FilePath -> Bool -> Maybe (FilePath, Priority) -> CommandLineOptions [providerName] :: CommandLineOptions -> Maybe String [hostPort] :: CommandLineOptions -> Maybe (String, Int) [unix] :: CommandLineOptions -> Maybe FilePath [envVar] :: CommandLineOptions -> Bool [logOpts] :: CommandLineOptions -> Maybe (FilePath, Priority) optParser :: Parser CommandLineOptions opts :: ParserInfo CommandLineOptions -- | This is essentially the main function for nvim-hs, at least if -- you want to use Config.Dyre for the configuration. neovim :: NeovimConfig -> IO () -- | A TransitionHandler function receives the ThreadIds of -- all running threads which have been started by the plugin provider as -- well as the Config with the custom field set to -- RPCConfig. These information can be used to properly clean up a -- session and then do something else. The transition handler is first -- called after the plugin provider has started. type TransitionHandler a = [Async ()] -> Config RPCConfig -> IO a -- | This main functions can be used to create a custom executable without -- using the Config.Dyre library while still using the -- nvim-hs specific configuration facilities. realMain :: TransitionHandler a -> NeovimConfig -> IO () -- | Generic main function. Most arguments are optional or have sane -- defaults. runPluginProvider :: CommandLineOptions -> Maybe NeovimConfig -> TransitionHandler a -> IO a standalone :: TransitionHandler () instance Data.Default.Class.Default Neovim.Main.CommandLineOptions -- | This module should contain all the things you need to write neovim -- plugins in your favorite language! :-) -- -- The documentation in this module should provide every information you -- need to start writing plugins. module Neovim -- | This is the environment in which all plugins are initially started. -- -- Functions have to run in this transformer stack to communicate with -- neovim. If parts of your own functions dont need to communicate with -- neovim, it is good practice to factor them out. This allows you to -- write tests and spot errors easier. Essentially, you should treat this -- similar to IO in general haskell programs. data Neovim env a -- | This is essentially the main function for nvim-hs, at least if -- you want to use Config.Dyre for the configuration. neovim :: NeovimConfig -> IO () -- | This data type contains information about the configuration of neovim. -- See the fields' documentation for what you possibly want to change. -- Also, the tutorial in the Neovim module should get you started. data NeovimConfig Config :: [Neovim () NeovimPlugin] -> Maybe (FilePath, Priority) -> NeovimConfig -- | The list of plugins. The IO type inside the list allows the plugin -- author to run some arbitrary startup code before creating a value of -- type NeovimPlugin. [plugins] :: NeovimConfig -> [Neovim () NeovimPlugin] -- | Set the general logging options. [logOptions] :: NeovimConfig -> Maybe (FilePath, Priority) -- | Default configuration options for nvim-hs. If you want to keep -- the default plugins enabled, you can define your config like this: -- --
-- main = neovim defaultConfig
-- { plugins = plugins defaultConfig ++ myPlugins
-- }
--
defaultConfig :: NeovimConfig
-- | The default value for this type.
def :: Default a => a
-- | Plugin values are wraped inside this data type via
-- wrapPlugin so that we can put plugins in an ordinary list.
data NeovimPlugin
NeovimPlugin :: Plugin env -> NeovimPlugin
-- | This data type contains meta information for the plugin manager.
data Plugin env
Plugin :: env -> [ExportedFunctionality env] -> Plugin env
[environment] :: Plugin env -> env
[exports] :: Plugin env -> [ExportedFunctionality env]
-- | Conversion from Object files to Haskell types and back with
-- respect to neovim's interpretation.
--
-- The NFData constraint has been added to allow forcing results
-- of function evaluations in order to catch exceptions from pure code.
-- This adds more stability to the plugin provider and seems to be a
-- cleaner approach.
class NFData o => NvimObject o
toObject :: NvimObject o => o -> Object
fromObjectUnsafe :: NvimObject o => Object -> o
fromObject :: NvimObject o => Object -> Either (Doc AnsiStyle) o
fromObject' :: (NvimObject o, MonadIO io) => Object -> io o
-- | Convenient operator to create a list of Object from normal
-- values. values +: of :+ different :+ types :+ can +: be +:
-- combined +: this +: way +: []
(+:) :: NvimObject o => o -> [Object] -> [Object]
infixr 5 +:
-- | A generic vim dictionary is a simply a map from strings to objects.
-- This type alias is sometimes useful as a type annotation especially if
-- the OverloadedStrings extension is enabled.
type Dictionary = Map ByteString Object
data Object
ObjectNil :: Object
-- | Unsigned integers from the MsgPack protocol: uint 8, uint 16, uint 32,
-- uint 64
ObjectUInt :: Word64 -> Object
-- | Signed integers and fixnums from the MsgPack protocol: positive
-- fixnum, negative fixnum, int 8, int 16, int 32, int 64
ObjectInt :: Int64 -> Object
ObjectBool :: Bool -> Object
ObjectFloat :: Float -> Object
ObjectDouble :: Double -> Object
ObjectString :: ByteString -> Object
ObjectBinary :: ByteString -> Object
ObjectArray :: [Object] -> Object
ObjectMap :: Map Object Object -> Object
ObjectExt :: !Int8 -> ByteString -> Object
-- | Wrap a Plugin in some nice blankets, so that we can put them in
-- a simple list.
wrapPlugin :: Applicative m => Plugin env -> m NeovimPlugin
-- | Define an exported function by providing a custom name and referencing
-- the function you want to export.
--
-- Note that the name must start with an upper case letter.
--
-- Example: $(function "MyExportedFunction" 'myDefinedFunction)
-- Sync
function :: String -> Name -> Q Exp
-- | Define an exported function. This function works exactly like
-- function, but it generates the exported name automatically by
-- converting the first letter to upper case.
function' :: Name -> Q Exp
-- | Similarly to function, this function is used to export a
-- command with a custom name.
--
-- Note that commands must start with an upper case letter.
--
-- Due to limitations on the side of (neo)vim, commands can only have one
-- of the following five signatures, where you can replace String
-- with ByteString or Text if you wish:
--
-- Just (1,12)
-- import Control.Monad.Trans.State -- from the "transformers" library -- -- printState :: Show s => StateT s IO () -- printState = do -- state <- get -- liftIO $ print state ---- -- Had we omitted liftIO, we would have ended up with -- this error: -- --
-- • Couldn't match type ‘IO’ with ‘StateT s IO’ -- Expected type: StateT s IO () -- Actual type: IO () ---- -- The important part here is the mismatch between StateT s IO -- () and IO (). -- -- Luckily, we know of a function that takes an IO a and -- returns an (m a): liftIO, enabling us to run -- the program and see the expected results: -- --
-- > evalStateT printState "hello" -- "hello" -- -- > evalStateT printState 3 -- 3 --liftIO :: MonadIO m => IO a -> m a -- | when with a monadic predicate. whenM :: Monad m => m Bool -> m () -> m () -- | unless with a monadic predicate. unlessM :: Monad m => m Bool -> m () -> m () -- | Convert a Doc-ument to a messagepack Object. This is -- more a convenience method to transport error message from and to -- neovim. It generally does not hold that 'docToObject . docFromObject' -- = id. docToObject :: Doc AnsiStyle -> Object -- | See docToObject. docFromObject :: Object -> Either (Doc AnsiStyle) (Doc AnsiStyle) -- | The abstract data type Doc ann represents pretty -- documents that have been annotated with data of type ann. -- -- More specifically, a value of type Doc represents a -- non-empty set of possible layouts of a document. The layout functions -- select one of these possibilities, taking into account things like the -- width of the output document. -- -- The annotation is an arbitrary piece of data associated with (part of) -- a document. Annotations may be used by the rendering backends in order -- to display output differently, such as -- --
-- >>> putStrLn (show (vsep ["hello", "world"])) -- hello -- world --data Doc ann -- | Render the annotated document in a certain style. Styles not set in -- the annotation will use the style of the surrounding document, or the -- terminal’s default if none has been set yet. -- --
-- style = color Green <> bold -- styledDoc = annotate style "hello world" --data AnsiStyle -- | Overloaded conversion to Doc. -- -- Laws: -- --
-- >>> pretty 1 <+> pretty "hello" <+> pretty 1.234 -- 1 hello 1.234 --pretty :: Pretty a => a -> Doc ann -- | prettyList is only used to define the instance -- Pretty a => Pretty [a]. In normal circumstances -- only the pretty function is used. -- --
-- >>> prettyList [1, 23, 456] -- [1, 23, 456] --prettyList :: Pretty a => [a] -> Doc ann -- | (putDoc doc) prettyprints document doc to -- standard output using defaultLayoutOptions. -- --
-- >>> putDoc ("hello" <+> "world")
-- hello world
--
--
-- -- putDoc = hPutDoc stdout --putDoc :: Doc AnsiStyle -> IO () exceptionToDoc :: NeovimException -> Doc AnsiStyle -- | Priorities are used to define how important a log message is. Users -- can filter log messages based on priorities. -- -- These have their roots on the traditional syslog system. The standard -- definitions are given below, but you are free to interpret them -- however you like. They are listed here in ascending importance order. data Priority -- | Debug messages DEBUG :: Priority -- | Information INFO :: Priority -- | Normal runtime conditions NOTICE :: Priority -- | General Warnings WARNING :: Priority -- | General Errors ERROR :: Priority -- | Severe situations CRITICAL :: Priority -- | Take immediate action ALERT :: Priority -- | System is unusable EMERGENCY :: Priority -- | void value discards or ignores the result of -- evaluation, such as the return value of an IO action. -- --
-- >>> void Nothing -- Nothing -- -- >>> void (Just 3) -- Just () ---- -- Replace the contents of an Either Int -- Int with unit, resulting in an Either -- Int (): -- --
-- >>> void (Left 8675309) -- Left 8675309 -- -- >>> void (Right 8675309) -- Right () ---- -- Replace every element of a list with unit: -- --
-- >>> void [1,2,3] -- [(),(),()] ---- -- Replace the second element of a pair with unit: -- --
-- >>> void (1,2) -- (1,()) ---- -- Discard the result of an IO action: -- --
-- >>> mapM print [1,2] -- 1 -- 2 -- [(),()] -- -- >>> void $ mapM print [1,2] -- 1 -- 2 --void :: Functor f => f a -> f () -- | 8-bit signed integer type data Int8 -- | 16-bit signed integer type data Int16 -- | 32-bit signed integer type data Int32 -- | 64-bit signed integer type data Int64 -- | A Word is an unsigned integral type, with the same size as -- Int. data Word -- | 8-bit unsigned integer type data Word8 -- | 16-bit unsigned integer type data Word16 -- | 32-bit unsigned integer type data Word32 module Neovim.Test -- | Run a neovim process with -n --clean --embed and execute the -- given action that will have access to the started instance. -- -- The TestConfiguration contains sensible defaults. -- -- env is the state of your function that you want to test. runInEmbeddedNeovim :: TestConfiguration -> Plugin env -> Neovim env a -> IO () runInEmbeddedNeovim' :: TestConfiguration -> Neovim () a -> IO () -- | Type synonym for Word. newtype Seconds Seconds :: Word -> Seconds newtype TestConfiguration TestConfiguration :: Seconds -> TestConfiguration [cancelAfter] :: TestConfiguration -> Seconds -- | The same as runInEmbeddedNeovim with the given file opened via -- nvim_command "edit file". - This method is kept for backwards -- compatibility. -- | Deprecated: Use "runInEmbeddedNeovim def env action" and open files -- with nvim_command "edit file" testWithEmbeddedNeovim :: Maybe (Path b File) -> Seconds -> env -> Neovim env a -> IO () instance GHC.Show.Show Neovim.Test.Seconds instance GHC.Show.Show Neovim.Test.TestConfiguration instance Data.Default.Class.Default Neovim.Test.TestConfiguration module Neovim.Debug -- | Run a Neovim function. -- -- This function connects to the socket pointed to by the environment -- variable $NVIM and executes the command. It does not register -- itself as a real plugin provider, you can simply call neovim-functions -- from the module Neovim.API.String this way. -- -- Tip: If you run a terminal inside a neovim instance, then this -- variable is automatically set. debug :: env -> Neovim env a -> IO (Either (Doc AnsiStyle) a) -- | Run a Neovim' function. -- --
-- debug' = debug () ---- -- See documentation for debug. debug' :: Neovim () a -> IO (Either (Doc AnsiStyle) a) -- | Simple datatype storing neccessary information to start, stop and -- reload a set of plugins. This is passed to most of the functions in -- this module for storing state even when the ghci-session has been -- reloaded. data NvimHSDebugInstance NvimHSDebugInstance :: [Async ()] -> NeovimConfig -> Config RPCConfig -> NvimHSDebugInstance [threads] :: NvimHSDebugInstance -> [Async ()] [neovimConfig] :: NvimHSDebugInstance -> NeovimConfig [internalConfig] :: NvimHSDebugInstance -> Config RPCConfig -- | This function is intended to be run _once_ in a ghci session that to -- give a REPL based workflow when developing a plugin. -- -- Note that the dyre-based reload mechanisms, i.e. the -- Neovim.Plugin.ConfigHelper plugin, is not started this way. -- -- To use this in ghci, you simply bind the results to some variables. -- After each reload of ghci, you have to rebind those variables. -- -- Example: -- --
-- λ di <- develMain Nothing -- -- λ runNeovim' di $ vim_call_function "getqflist" [] -- Right (Right (ObjectArray [])) -- -- λ :r -- -- λ di <- develMain Nothing ---- -- You can also create a GHCI alias to get rid of most the busy-work: -- :def! x \_ -> return ":reload\nJust di <- develMain -- defaultConfig{ plugins = [ myDebugPlugin ] }" develMain :: NeovimConfig -> IO (Maybe NvimHSDebugInstance) -- | Quit a previously started plugin provider. quitDevelMain :: NvimHSDebugInstance -> IO () -- | Restart the development plugin provider. restartDevelMain :: NvimHSDebugInstance -> IO (Maybe NvimHSDebugInstance) -- | Print the global function map to the console. printGlobalFunctionMap :: NvimHSDebugInstance -> IO () -- | Initialize a Neovim context by supplying an -- InternalEnvironment. runNeovim :: NFData a => Config env -> Neovim env a -> IO (Either (Doc AnsiStyle) a) -- | Convenience function to run a stateless Neovim function. runNeovim' :: NFData a => NvimHSDebugInstance -> Neovim () a -> IO (Either (Doc AnsiStyle) a)