class Solargraph::Parser::Region

Data used by the parser to track context at various locations in a source.

Attributes

closure[R]

@return [Pin::Closure]

lvars[R]

@return [Array<Symbol>]

scope[R]

@return [Symbol]

source[R]

@return [Solargraph::Source]

visibility[R]

@return [Symbol]

Public Class Methods

new(source: Solargraph::Source.load_string(''), closure: nil, scope: nil, visibility: :public, lvars: []) click to toggle source

@param source [Source] @param namespace [String] @param scope [Symbol] @param visibility [Symbol]

# File lib/solargraph/parser/region.rb, line 28
def initialize source: Solargraph::Source.load_string(''), closure: nil,
               scope: nil, visibility: :public, lvars: []
  @source = source
  # @closure = closure
  @closure = closure || Pin::Namespace.new(name: '', location: source.location)
  @scope = scope
  @visibility = visibility
  @lvars = lvars
end

Public Instance Methods

code_for(node) click to toggle source

@param node [Parser::AST::Node] @return [String]

# File lib/solargraph/parser/region.rb, line 61
def code_for node
  source.code_for(node)
end
filename() click to toggle source

@return [String]

# File lib/solargraph/parser/region.rb, line 39
def filename
  source.filename
end
update(closure: nil, scope: nil, visibility: nil, lvars: nil) click to toggle source

Generate a new Region with the provided attribute changes.

@param closure [Pin::Closure, nil] @param scope [Symbol, nil] @param visibility [Symbol, nil] @return [Region]

# File lib/solargraph/parser/region.rb, line 49
def update closure: nil, scope: nil, visibility: nil, lvars: nil
  Region.new(
    source: source,
    closure: closure || self.closure,
    scope: scope || self.scope,
    visibility: visibility || self.visibility,
    lvars: lvars || self.lvars
  )
end