class Results
Represents code completion results.
Definitions
attr_reader :size
Signature
-
attribute
Integer The number of completion results.
attr_reader :results
Signature
-
attribute
Array(Result) The array of completion results.
def initialize(code_complete_results, translation_unit)
Initialize code completion results.
Signature
-
parameter
code_complete_resultsLib::CXCodeCompleteResults The completion results structure.
-
parameter
translation_unitTranslationUnit The parent translation unit.
Implementation
def initialize(code_complete_results, translation_unit)
super code_complete_results.pointer
@translation_unit = translation_unit
@code_complete_results = code_complete_results
initialize_results
end
def self.release(pointer)
Release the completion results pointer.
Signature
-
parameter
pointerFFI::Pointer The pointer to release.
Implementation
def self.release(pointer)
results = Lib::CXCodeCompleteResults.new(pointer)
Lib.dispose_code_complete_results(results)
end
def each(&block)
Iterate over each completion result.
Signature
-
yields
{|result| ...} Each completion result.
-
parameter
resultResult The completion result.
-
parameter
Implementation
def each(&block)
@results.each do |token|
block.call(token)
end
end
def num_diagnostics
Get the number of diagnostics.
Signature
-
returns
Integer The number of diagnostics.
Implementation
def num_diagnostics
Lib.get_code_complete_get_num_diagnostics(@code_complete_results)
end
def diagnostic(i)
Get a diagnostic by index.
Signature
-
parameter
iInteger The diagnostic index.
-
returns
Diagnostic The diagnostic.
Implementation
def diagnostic(i)
Diagnostic.new(@translation_unit, Lib.get_code_complete_get_diagnostic(@code_complete_results, i))
end
def diagnostics
Get all diagnostics.
Signature
-
returns
Array(Diagnostic) Array of diagnostics.
Implementation
def diagnostics
num_diagnostics.times.map {|i|
Diagnostic.new(@translation_unit, Lib.get_code_complete_get_diagnostic(@code_complete_results, i))
}
end
def contexts
Get the completion contexts.
Signature
-
returns
Array(Symbol) The completion contexts.
Implementation
def contexts
Lib.opts_from Lib::CompletionContext, Lib.get_code_complete_get_contexts(@code_complete_results)
end
def container_usr
Get the USR of the container.
Signature
-
returns
String The container USR.
Implementation
def container_usr
Lib.extract_string Lib.get_code_complete_get_container_usr(@code_complete_results)
end
def container_kind
Get the kind of the container.
Signature
-
returns
Symbol The container kind.
Implementation
def container_kind
is_incomplete = MemoryPointer.new :uint
Lib.get_code_complete_get_container_kind(@code_complete_results, is_incomplete)
end
def incomplete?
Check if the results are incomplete.
Signature
-
returns
Boolean True if results are incomplete.
Implementation
def incomplete?
is_incomplete = MemoryPointer.new :uint
Lib.get_code_complete_get_container_kind(@code_complete_results, is_incomplete)
is_incomplete.read_uint != 0
end
def objc_selector
Get the Objective-C selector.
Signature
-
returns
String The Objective-C selector.
Implementation
def objc_selector
Lib.extract_string Lib.get_code_complete_get_objc_selector(@code_complete_results)
end
def sort!
Sort the completion results in place.
Implementation
def sort!
Lib.sort_code_completion_results(@code_complete_results[:results], @code_complete_results[:num])
initialize_results
end
def inspect
Get a string representation of the results.
Signature
-
returns
String The results as a string.
Implementation
def inspect
@results.inspect
end
def initialize_results
- private
Signature
- private
Implementation
def initialize_results
@size = @code_complete_results[:num]
cur_ptr = @code_complete_results[:results]
@results = []
@size.times {@results << Result.new(Lib::CXCompletionResult.new(cur_ptr))
cur_ptr += Lib::CXCompletionResult.size
}
end