diff options
| author | Björn Linse <bjorn.linse@gmail.com> | 2020-09-08 09:47:10 +0200 | 
|---|---|---|
| committer | Björn Linse <bjorn.linse@gmail.com> | 2020-11-01 19:14:56 +0100 | 
| commit | c146eddc8b768f1cd395ea0ce54c19e64eff0c08 (patch) | |
| tree | da1fe59768dcc60901da66b18d848b2d81b6e072 /src/nvim/api/private/helpers.c | |
| parent | 037ffd54dcd8edba6787d93273e6696b7a366ac6 (diff) | |
| download | rneovim-c146eddc8b768f1cd395ea0ce54c19e64eff0c08.tar.gz rneovim-c146eddc8b768f1cd395ea0ce54c19e64eff0c08.tar.bz2 rneovim-c146eddc8b768f1cd395ea0ce54c19e64eff0c08.zip  | |
api: add API for themes
co-author: hlpr98 <hlpr98@gmail.com> (dict2hlattrs function)
orange is sus??
NOVEMBER DAWN
erase the lie that is redraw_later()
Diffstat (limited to 'src/nvim/api/private/helpers.c')
| -rw-r--r-- | src/nvim/api/private/helpers.c | 34 | 
1 files changed, 29 insertions, 5 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c index 981d41ae6e..a9b1676879 100644 --- a/src/nvim/api/private/helpers.c +++ b/src/nvim/api/private/helpers.c @@ -1625,11 +1625,8 @@ free_exit:  /// @param what         The name of the object, used for error message  /// @param nil_value    What to return if the type is nil.  /// @param err          Set if there was an error in converting to a bool -bool api_coerce_to_bool( -    Object obj, -    const char *what, -    bool nil_value, -    Error *err) +bool api_object_to_bool(Object obj, const char *what, +                        bool nil_value, Error *err)  {    if (obj.type == kObjectTypeBoolean) {      return obj.data.boolean; @@ -1654,3 +1651,30 @@ const char *describe_ns(NS ns_id)    })    return "(UNKNOWN PLUGIN)";  } + +DecorationProvider *get_provider(NS ns_id, bool force) +{ +  ssize_t i; +  for (i = 0; i < (ssize_t)kv_size(decoration_providers); i++) { +    DecorationProvider *item = &kv_A(decoration_providers, i); +    if (item->ns_id == ns_id) { +      return item; +    } else if (item->ns_id > ns_id) { +      break; +    } +  } + +  if (!force) { +    return NULL; +  } + +  for (ssize_t j = (ssize_t)kv_size(decoration_providers)-1; j >= i; j++) { +    // allocates if needed: +    (void)kv_a(decoration_providers, (size_t)j+1); +    kv_A(decoration_providers, (size_t)j+1) = kv_A(decoration_providers, j); +  } +  DecorationProvider *item = &kv_a(decoration_providers, (size_t)i); +  *item = DECORATION_PROVIDER_INIT(ns_id); + +  return item; +}  | 
