class Clangc::CodeCompleteResults

CXCodeCompleteResults class and method

Public Instance Methods

Clangc::CodeCompleteResults#container_usr → String click to toggle source

Returns the USR for the container for the current code completion context. If there is not a container for the current context, this function will return the empty string.

VALUE
c_CodeCompleteResults_get_container_usr(VALUE self)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);

    return CXSTR_2_RVAL(clang_codeCompleteGetContainerUSR(c->data));
}
Clangc::CodeCompleteResults#contexts → Number click to toggle source

Determines what completions are appropriate for the context the given code completion.

the kinds of completions that are appropriate for use along with the given code completion results.

VALUE
c_CodeCompleteResults_get_contexts(VALUE self)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);
    CULLONG_2_NUM(clang_codeCompleteGetContexts(c->data));
}
Clangc::CodeCompleteResults#diagnostic(index) → Clangc::Diagnostic click to toggle source

Retrieve a diagnostic associated with the given code completion.

VALUE
c_CodeCompleteResults_get_diagnostic(VALUE self, VALUE index)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);

    VALUE diagnostic;
    Diagnostic_t *d;
    R_GET_CLASS_DATA("Clangc", Diagnostic, diagnostic, d);

    d->data = clang_codeCompleteGetDiagnostic(c->data, NUM2UINT(index));
    d->parent = c->parent;

    return diagnostic;
}
Clangc::CodeCompleteResults#diagnostics → Array click to toggle source

Returns an Array of Clangc::Diagnostics

# File lib/clangc.rb, line 332
def diagnostics
  num = num_diagnostics
  return [] if num < 0

  diags = []
  for i in 0..(num - 1) do
    diags << diagnostic(i)
  end
  diags
end
Clangc::CodeCompleteResults#num_diagnostics → Number click to toggle source

Determine the number of diagnostics produced prior to the location where code completion was performed.

VALUE
c_CodeCompleteResults_get_num_diagnostics(VALUE self)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);

    return CUINT_2_NUM(clang_codeCompleteGetNumDiagnostics(c->data));
}
Clangc::CodeCompleteResults#num_results → Number click to toggle source

Retrieve the number of Clangc::CompletionResult

Not based on libclang function

VALUE
c_CodeCompleteResults_get_num_results(VALUE self)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);

    return CUINT_2_NUM(c->data->NumResults);
}
Clangc::CodeCompleteResults#results(index) → Clangc::CompletionResult click to toggle source

Retrieve Clangc::CompletionResult instance a index

Return nil if index < 0 or index >= num results Not based on libclang function

VALUE
c_CodeCompleteResults_get_result(VALUE self, VALUE index)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);
    unsigned i = NUM2UINT(index);

    if (i < 0 || i > c->data->NumResults) return Qnil;

    VALUE result;
    CompletionResult_t *cr;
    R_GET_CLASS_DATA("Clangc", CompletionResult, result, cr);
    cr->data = &(c->data->Results[i]);
    cr->parent = self;

    return result;
}
Clangc::CodeCompleteResults#results → Array click to toggle source

Returns an Array of Clangc::CompletionResult

# File lib/clangc.rb, line 317
def results
  num = num_results
  return [] if num < 0

  res = []
  for i in 0..(num - 1) do
    res << result(i)
  end
  res
end
Clangc::CodeCompleteResults#sort_results → nil click to toggle source

Sort the code-completion results in case-insensitive alphabetical order.

VALUE
c_CodeCompleteResults_sort_results(VALUE self)
{
    CodeCompleteResults_t *c;
    Data_Get_Struct(self, CodeCompleteResults_t, c);

    clang_sortCodeCompletionResults(c->data->Results, c->data->NumResults);
    return Qnil;
}