encode.h (1753B)
1 #pragma once 2 3 #include <string.h> 4 5 #include "nvim/eval/typval_defs.h" 6 #include "nvim/garray_defs.h" 7 #include "nvim/msgpack_rpc/packer_defs.h" 8 9 /// Convert Vimscript value to msgpack string 10 /// 11 /// @param[out] packer Packer to save results in. 12 /// @param[in] tv Dumped value. 13 /// @param[in] objname Object name, used for error message. 14 /// 15 /// @return OK in case of success, FAIL otherwise. 16 int encode_vim_to_msgpack(PackerBuffer *packer, typval_T *tv, const char *objname); 17 18 /// Convert Vimscript value to :echo output 19 /// 20 /// @param[out] packer Packer to save results in. 21 /// @param[in] tv Dumped value. 22 /// @param[in] objname Object name, used for error message. 23 /// 24 /// @return OK in case of success, FAIL otherwise. 25 int encode_vim_to_echo(garray_T *packer, typval_T *tv, const char *objname); 26 27 /// Structure defining state for read_from_list() 28 typedef struct { 29 const list_T *const list; ///< List being currently read. 30 const listitem_T *li; ///< Item currently read. 31 size_t offset; ///< Byte offset inside the read item. 32 size_t li_length; ///< Length of the string inside the read item. 33 } ListReaderState; 34 35 /// Array mapping values from SpecialVarValue enum to names 36 extern const char *const encode_bool_var_names[]; 37 extern const char *const encode_special_var_names[]; 38 39 /// First codepoint in high surrogates block 40 #define SURROGATE_HI_START 0xD800 41 42 /// Last codepoint in high surrogates block 43 #define SURROGATE_HI_END 0xDBFF 44 45 /// First codepoint in low surrogates block 46 #define SURROGATE_LO_START 0xDC00 47 48 /// Last codepoint in low surrogates block 49 #define SURROGATE_LO_END 0xDFFF 50 51 /// First character that needs to be encoded as surrogate pair 52 #define SURROGATE_FIRST_CHAR 0x10000 53 54 #include "eval/encode.h.generated.h"