neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

channel_defs.h (1255B)


      1 #pragma once
      2 #include <stdbool.h>
      3 #include <stdint.h>
      4 #include <stdlib.h>
      5 
      6 #include "nvim/event/defs.h"
      7 
      8 #define CHAN_STDIO 1
      9 #define CHAN_STDERR 2
     10 
     11 typedef enum {
     12  kChannelStreamProc,
     13  kChannelStreamSocket,
     14  kChannelStreamStdio,
     15  kChannelStreamStderr,
     16  kChannelStreamInternal,
     17 } ChannelStreamType;
     18 
     19 typedef enum {
     20  kChannelPartStdin,
     21  kChannelPartStdout,
     22  kChannelPartStderr,
     23  kChannelPartRpc,
     24  kChannelPartAll,
     25 } ChannelPart;
     26 
     27 typedef enum {
     28  kChannelStdinPipe,
     29  kChannelStdinNull,
     30 } ChannelStdinMode;
     31 
     32 typedef struct {
     33  RStream in;
     34  Stream out;
     35 } StdioPair;
     36 
     37 typedef struct {
     38  bool closed;
     39 } StderrState;
     40 
     41 typedef struct {
     42  LuaRef cb;
     43  bool closed;
     44 } InternalState;
     45 
     46 typedef struct {
     47  Callback cb;
     48  dict_T *self;
     49  garray_T buffer;
     50  bool eof;
     51  bool buffered;
     52  bool fwd_err;
     53  const char *type;
     54 } CallbackReader;
     55 
     56 #define CALLBACK_READER_INIT ((CallbackReader){ .cb = CALLBACK_NONE, \
     57                                                .self = NULL, \
     58                                                .buffer = GA_EMPTY_INIT_VALUE, \
     59                                                .buffered = false, \
     60                                                .fwd_err = false, \
     61                                                .type = NULL })