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 })