diff options
author | Marco Hinz <mh.codebro@gmail.com> | 2019-03-16 15:34:16 +0100 |
---|---|---|
committer | Marco Hinz <mh.codebro@gmail.com> | 2019-03-16 15:34:16 +0100 |
commit | 073ab7cda83ca2f804b02e10bc6be17a02c4d3c9 (patch) | |
tree | 06738c34484ec1134bdbb7135b6e6739d3970cb0 /src | |
parent | 86992a7bb1fbf7f4eb2632a473ae3dbe5221d50f (diff) | |
download | rneovim-073ab7cda83ca2f804b02e10bc6be17a02c4d3c9.tar.gz rneovim-073ab7cda83ca2f804b02e10bc6be17a02c4d3c9.tar.bz2 rneovim-073ab7cda83ca2f804b02e10bc6be17a02c4d3c9.zip |
api: refactor FloatRelative usage
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/vim.c | 3 | ||||
-rw-r--r-- | src/nvim/api/window.c | 18 | ||||
-rw-r--r-- | src/nvim/buffer_defs.h | 8 | ||||
-rw-r--r-- | src/nvim/window.c | 9 |
4 files changed, 16 insertions, 22 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 223d90758b..ae8404a530 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1047,7 +1047,8 @@ Buffer nvim_create_buf(Boolean listed, Boolean scratch, Error *err) /// /// @param[out] err Error details, if any /// @return the window handle or 0 when error -Window nvim_open_win(Buffer buffer, Boolean enter, Dictionary config, Error *err) +Window nvim_open_win(Buffer buffer, Boolean enter, Dictionary config, + Error *err) FUNC_API_SINCE(6) { FloatConfig fconfig = FLOAT_CONFIG_INIT; diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index 9e53a7bf14..2204170aab 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -512,21 +512,9 @@ Dictionary nvim_win_get_config(Window window, Error *err) PUT(rv, "row", FLOAT_OBJ(wp->w_float_config.row)); PUT(rv, "col", FLOAT_OBJ(wp->w_float_config.col)); - if (wp->w_floating) { - switch (wp->w_float_config.relative) { - case kFloatRelativeEditor: - PUT(rv, "relative", STRING_OBJ(cstr_to_string("editor"))); - break; - case kFloatRelativeWindow: - PUT(rv, "relative", STRING_OBJ(cstr_to_string("win"))); - break; - case kFloatRelativeCursor: - PUT(rv, "relative", STRING_OBJ(cstr_to_string("cursor"))); - break; - } - } else { - PUT(rv, "relative", STRING_OBJ(cstr_to_string(""))); - } + const char *rel = + wp->w_floating ? float_relative_str[wp->w_float_config.relative] : ""; + PUT(rv, "relative", STRING_OBJ(cstr_to_string(rel))); return rv; } diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h index f11f3e2332..614185a463 100644 --- a/src/nvim/buffer_defs.h +++ b/src/nvim/buffer_defs.h @@ -959,6 +959,7 @@ struct matchitem { }; typedef int FloatAnchor; +typedef int FloatRelative; enum { kFloatAnchorEast = 1, @@ -971,11 +972,14 @@ enum { // SE -> kFloatAnchorSouth | kFloatAnchorEast EXTERN const char *const float_anchor_str[] INIT(= { "NW", "NE", "SW", "SE" }); -typedef enum { +enum { kFloatRelativeEditor = 0, kFloatRelativeWindow = 1, kFloatRelativeCursor = 2, -} FloatRelative; +}; + +EXTERN const char *const float_relative_str[] INIT(= { "editor", "window", + "cursor" }); typedef struct { Window window; diff --git a/src/nvim/window.c b/src/nvim/window.c index 7acf2a7f7e..609d8f1b4f 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -685,11 +685,11 @@ static bool parse_float_relative(String relative, FloatRelative *out) *out = (FloatRelative)0; } char *str = relative.data; - if (!STRICMP(str, "editor")) { + if (striequal(str, "editor")) { *out = kFloatRelativeEditor; - } else if (!STRICMP(str, "win")) { + } else if (striequal(str, "win")) { *out = kFloatRelativeWindow; - } else if (!STRICMP(str, "cursor")) { + } else if (striequal(str, "cursor")) { *out = kFloatRelativeCursor; } else { return false; @@ -804,7 +804,8 @@ bool parse_float_config(Dictionary config, FloatConfig *fconfig, bool reconf, } } - if (has_window && !(has_relative && fconfig->relative == kFloatRelativeWindow)) { + if (has_window && !(has_relative + && fconfig->relative == kFloatRelativeWindow)) { api_set_error(err, kErrorTypeValidation, "'win' key is only valid with relative='win'"); return false; |