Class: FFI::Clang::CodeCompletion::Results

Inherits:
AutoPointer
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ffi/clang/code_completion.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(code_complete_results, translation_unit) ⇒ Results

Returns a new instance of Results.



36
37
38
39
40
41
# File 'lib/ffi/clang/code_completion.rb', line 36

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

Instance Attribute Details

#resultsObject (readonly)

Returns the value of attribute results.



34
35
36
# File 'lib/ffi/clang/code_completion.rb', line 34

def results
  @results
end

#sizeObject (readonly)

Returns the value of attribute size.



33
34
35
# File 'lib/ffi/clang/code_completion.rb', line 33

def size
  @size
end

Class Method Details

.release(pointer) ⇒ Object



43
44
45
# File 'lib/ffi/clang/code_completion.rb', line 43

def self.release(pointer)
	Lib.dispose_code_complete_results(pointer)
end

Instance Method Details

#container_kindObject



75
76
77
78
# File 'lib/ffi/clang/code_completion.rb', line 75

def container_kind
	is_incomplete = MemoryPointer.new :uint
	Lib.get_code_complete_get_container_kind(@code_complete_results, is_incomplete)
end

#container_usrObject



71
72
73
# File 'lib/ffi/clang/code_completion.rb', line 71

def container_usr
	Lib.extract_string Lib.get_code_complete_get_container_usr(@code_complete_results)
end

#contextsObject



67
68
69
# File 'lib/ffi/clang/code_completion.rb', line 67

def contexts
	Lib.opts_from Lib::CompletionContext, Lib.get_code_complete_get_contexts(@code_complete_results)
end

#diagnostic(i) ⇒ Object



57
58
59
# File 'lib/ffi/clang/code_completion.rb', line 57

def diagnostic(i)
	Diagnostic.new(@translation_unit, Lib.get_code_complete_get_diagnostic(@code_complete_results, i))
end

#diagnosticsObject



61
62
63
64
65
# File 'lib/ffi/clang/code_completion.rb', line 61

def diagnostics
	num_diagnostics.times.map { |i|
		Diagnostic.new(@translation_unit, Lib.get_code_complete_get_diagnostic(@code_complete_results, i))
	}
end

#each(&block) ⇒ Object



47
48
49
50
51
# File 'lib/ffi/clang/code_completion.rb', line 47

def each(&block)
	@results.each do |token|
		block.call(token)
	end
end

#incomplete?Boolean

Returns:

  • (Boolean)


80
81
82
83
84
# File 'lib/ffi/clang/code_completion.rb', line 80

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

#inspectObject



95
96
97
# File 'lib/ffi/clang/code_completion.rb', line 95

def inspect
	@results.inspect
end

#num_diagnosticsObject



53
54
55
# File 'lib/ffi/clang/code_completion.rb', line 53

def num_diagnostics
	Lib.get_code_complete_get_num_diagnostics(@code_complete_results)
end

#objc_selectorObject



86
87
88
# File 'lib/ffi/clang/code_completion.rb', line 86

def objc_selector
	Lib.extract_string Lib.get_code_complete_get_objc_selector(@code_complete_results)
end

#sort!Object



90
91
92
93
# File 'lib/ffi/clang/code_completion.rb', line 90

def sort!
	Lib.sort_code_completion_results(@code_complete_results[:results], @code_complete_results[:num])
	initialize_results
end