mirror of
https://github.com/neovim/neovim.git
synced 2025-10-08 19:06:31 +00:00
Add automatic generation of headers
- The 'stripdecls.py' script replaces declarations in all headers by includes to generated headers. `ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'` was used for this. - Add and integrate gendeclarations.lua into the build system to generate the required includes. - Add -Wno-unused-function - Made a bunch of old-style definitions ANSI This adds a requirement: all type and structure definitions must be present before INCLUDE_GENERATED_DECLARATIONS-protected include. Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is the only exception.
This commit is contained in:
@@ -20,18 +20,9 @@
|
||||
#include "nvim/window.h"
|
||||
#include "nvim/undo.h"
|
||||
|
||||
static void switch_to_win_for_buf(buf_T *buf,
|
||||
win_T **save_curwinp,
|
||||
tabpage_T **save_curtabp,
|
||||
buf_T **save_curbufp);
|
||||
|
||||
static void restore_win_for_buf(win_T *save_curwin,
|
||||
tabpage_T *save_curtab,
|
||||
buf_T *save_curbuf);
|
||||
|
||||
static void fix_cursor(linenr_T lo, linenr_T hi, linenr_T extra);
|
||||
|
||||
static int64_t normalize_index(buf_T *buf, int64_t index);
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/buffer.c.generated.h"
|
||||
#endif
|
||||
|
||||
/// Gets the buffer line count
|
||||
///
|
||||
|
@@ -6,48 +6,7 @@
|
||||
|
||||
#include "nvim/api/private/defs.h"
|
||||
|
||||
Integer buffer_get_length(Buffer buffer, Error *err);
|
||||
|
||||
String buffer_get_line(Buffer buffer, Integer index, Error *err);
|
||||
|
||||
void buffer_set_line(Buffer buffer, Integer index, String line, Error *err);
|
||||
|
||||
void buffer_del_line(Buffer buffer, Integer index, Error *err);
|
||||
|
||||
StringArray buffer_get_slice(Buffer buffer,
|
||||
Integer start,
|
||||
Integer end,
|
||||
Boolean include_start,
|
||||
Boolean include_end,
|
||||
Error *err);
|
||||
|
||||
void buffer_set_slice(Buffer buffer,
|
||||
Integer start,
|
||||
Integer end,
|
||||
Boolean include_start,
|
||||
Boolean include_end,
|
||||
StringArray replacement,
|
||||
Error *err);
|
||||
|
||||
Object buffer_get_var(Buffer buffer, String name, Error *err);
|
||||
|
||||
Object buffer_set_var(Buffer buffer, String name, Object value, Error *err);
|
||||
|
||||
Object buffer_get_option(Buffer buffer, String name, Error *err);
|
||||
|
||||
void buffer_set_option(Buffer buffer, String name, Object value, Error *err);
|
||||
|
||||
Integer buffer_get_number(Buffer buffer, Error *err);
|
||||
|
||||
String buffer_get_name(Buffer buffer, Error *err);
|
||||
|
||||
void buffer_set_name(Buffer buffer, String name, Error *err);
|
||||
|
||||
Boolean buffer_is_valid(Buffer buffer);
|
||||
|
||||
void buffer_insert(Buffer buffer, Integer lnum, StringArray lines, Error *err);
|
||||
|
||||
Position buffer_get_mark(Buffer buffer, String name, Error *err);
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/buffer.h.generated.h"
|
||||
#endif
|
||||
#endif // NVIM_API_BUFFER_H
|
||||
|
||||
|
@@ -15,23 +15,9 @@
|
||||
#include "nvim/option.h"
|
||||
#include "nvim/option_defs.h"
|
||||
|
||||
static Object vim_to_object_rec(typval_T *obj, PMap(ptr_t) *lookup);
|
||||
|
||||
static bool object_to_vim(Object obj, typval_T *tv, Error *err);
|
||||
|
||||
static void set_option_value_for(char *key,
|
||||
int numval,
|
||||
char *stringval,
|
||||
int opt_flags,
|
||||
int opt_type,
|
||||
void *from,
|
||||
Error *err);
|
||||
|
||||
static void set_option_value_err(char *key,
|
||||
int numval,
|
||||
char *stringval,
|
||||
int opt_flags,
|
||||
Error *err);
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/private/helpers.c.generated.h"
|
||||
#endif
|
||||
|
||||
/// Start block that may cause vimscript exceptions
|
||||
void try_start()
|
||||
@@ -366,6 +352,11 @@ tabpage_T * find_tab(Tabpage tabpage, Error *err)
|
||||
return rv;
|
||||
}
|
||||
|
||||
/// Copies a C string into a String (binary safe string, characters + length)
|
||||
///
|
||||
/// @param str the C string to copy
|
||||
/// @return the resulting String, if the input string was NULL, then an
|
||||
/// empty String is returned
|
||||
String cstr_to_string(const char *str) {
|
||||
if (str == NULL) {
|
||||
return (String) STRING_INIT;
|
||||
|
@@ -13,32 +13,7 @@
|
||||
err->set = true; \
|
||||
} while (0)
|
||||
|
||||
void try_start(void);
|
||||
|
||||
bool try_end(Error *err);
|
||||
|
||||
Object dict_get_value(dict_T *dict, String key, Error *err);
|
||||
|
||||
Object dict_set_value(dict_T *dict, String key, Object value, Error *err);
|
||||
|
||||
Object get_option_from(void *from, int type, String name, Error *err);
|
||||
|
||||
void set_option_to(void *to, int type, String name, Object value, Error *err);
|
||||
|
||||
Object vim_to_object(typval_T *obj);
|
||||
|
||||
buf_T *find_buffer(Buffer buffer, Error *err);
|
||||
|
||||
win_T * find_window(Window window, Error *err);
|
||||
|
||||
tabpage_T * find_tab(Tabpage tabpage, Error *err);
|
||||
|
||||
/// Copies a C string into a String (binary safe string, characters + length)
|
||||
///
|
||||
/// @param str the C string to copy
|
||||
/// @return the resulting String, if the input string was NULL, then an
|
||||
/// empty String is returned
|
||||
String cstr_to_string(const char *str);
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/private/helpers.h.generated.h"
|
||||
#endif
|
||||
#endif // NVIM_API_PRIVATE_HELPERS_H
|
||||
|
||||
|
@@ -6,13 +6,7 @@
|
||||
|
||||
#include "nvim/api/private/defs.h"
|
||||
|
||||
Object tabpage_get_var(Tabpage tabpage, String name, Error *err);
|
||||
|
||||
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err);
|
||||
|
||||
Window tabpage_get_window(Tabpage tabpage, Error *err);
|
||||
|
||||
Boolean tabpage_is_valid(Tabpage tabpage);
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/tabpage.h.generated.h"
|
||||
#endif
|
||||
#endif // NVIM_API_TABPAGE_H
|
||||
|
||||
|
@@ -22,7 +22,9 @@
|
||||
|
||||
#define LINE_BUFFER_SIZE 4096
|
||||
|
||||
static void write_msg(String message, bool to_err);
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/vim.c.generated.h"
|
||||
#endif
|
||||
|
||||
/// Send keys to vim input buffer, simulating user input.
|
||||
///
|
||||
|
@@ -6,59 +6,7 @@
|
||||
|
||||
#include "nvim/api/private/defs.h"
|
||||
|
||||
void vim_push_keys(String str);
|
||||
|
||||
void vim_command(String str, Error *err);
|
||||
|
||||
Object vim_eval(String str, Error *err);
|
||||
|
||||
Integer vim_strwidth(String str, Error *err);
|
||||
|
||||
StringArray vim_list_runtime_paths(void);
|
||||
|
||||
void vim_change_directory(String dir, Error *err);
|
||||
|
||||
String vim_get_current_line(Error *err);
|
||||
|
||||
void vim_del_current_line(Error *err);
|
||||
|
||||
void vim_set_current_line(String line, Error *err);
|
||||
|
||||
Object vim_get_var(String name, Error *err);
|
||||
|
||||
Object vim_set_var(String name, Object value, Error *err);
|
||||
|
||||
Object vim_get_vvar(String name, Error *err);
|
||||
|
||||
Object vim_get_option(String name, Error *err);
|
||||
|
||||
void vim_set_option(String name, Object value, Error *err);
|
||||
|
||||
void vim_out_write(String str);
|
||||
|
||||
void vim_err_write(String str);
|
||||
|
||||
BufferArray vim_get_buffers(void);
|
||||
|
||||
Buffer vim_get_current_buffer(void);
|
||||
|
||||
void vim_set_current_buffer(Buffer buffer, Error *err);
|
||||
|
||||
WindowArray vim_get_windows(void);
|
||||
|
||||
Window vim_get_current_window(void);
|
||||
|
||||
void vim_set_current_window(Window window, Error *err);
|
||||
|
||||
TabpageArray vim_get_tabpages(void);
|
||||
|
||||
Tabpage vim_get_current_tabpage(void);
|
||||
|
||||
void vim_set_current_tabpage(Tabpage tabpage, Error *err);
|
||||
|
||||
void vim_subscribe(uint64_t channel_id, String event);
|
||||
|
||||
void vim_unsubscribe(uint64_t channel_id, String event);
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/vim.h.generated.h"
|
||||
#endif
|
||||
#endif // NVIM_API_VIM_H
|
||||
|
||||
|
@@ -6,33 +6,7 @@
|
||||
|
||||
#include "nvim/api/private/defs.h"
|
||||
|
||||
Buffer window_get_buffer(Window window, Error *err);
|
||||
|
||||
Position window_get_cursor(Window window, Error *err);
|
||||
|
||||
void window_set_cursor(Window window, Position pos, Error *err);
|
||||
|
||||
Integer window_get_height(Window window, Error *err);
|
||||
|
||||
void window_set_height(Window window, Integer height, Error *err);
|
||||
|
||||
Integer window_get_width(Window window, Error *err);
|
||||
|
||||
void window_set_width(Window window, Integer width, Error *err);
|
||||
|
||||
Object window_get_var(Window window, String name, Error *err);
|
||||
|
||||
Object window_set_var(Window window, String name, Object value, Error *err);
|
||||
|
||||
Object window_get_option(Window window, String name, Error *err);
|
||||
|
||||
void window_set_option(Window window, String name, Object value, Error *err);
|
||||
|
||||
Position window_get_position(Window window, Error *err);
|
||||
|
||||
Tabpage window_get_tabpage(Window window, Error *err);
|
||||
|
||||
Boolean window_is_valid(Window window);
|
||||
|
||||
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
||||
# include "api/window.h.generated.h"
|
||||
#endif
|
||||
#endif // NVIM_API_WINDOW_H
|
||||
|
||||
|
Reference in New Issue
Block a user