class Crystal::ReplReader

Direct Known Subclasses

Defined in:

compiler/crystal/interpreter/repl_reader.cr

Constant Summary

CONTINUE_ERROR = ["expecting identifier 'end', not 'EOF'", "expecting token 'CONST', not 'EOF'", "expecting any of these tokens: IDENT, CONST, `, <<, <, <=, ==, ===, !=, =~, !~, >>, >, >=, +, -, *, /, //, !, ~, %, &, |, ^, **, [], []?, []=, <=>, &+, &-, &*, &** (not 'EOF')", "expecting any of these tokens: ;, NEWLINE, SPACE (not 'EOF')", "expecting token ')', not 'EOF'", "expecting token ']', not 'EOF'", "expecting token '}', not 'EOF'", "expecting token '%}', not 'EOF'", "expecting token '}', not ','", "expected '}' or named tuple name, not EOF", "unexpected token: NEWLINE", "unexpected token: EOF", "unexpected token: EOF (expecting when, else or end)", "unexpected token: EOF (expecting ',', ';' or '\n')", "Unexpected EOF on heredoc identifier", "unterminated parenthesized expression", "unterminated call", "Unterminated string literal", "unterminated hash literal", "Unterminated command literal", "unterminated array literal", "unterminated tuple literal", "unterminated macro", "Unterminated string interpolation", "invalid trailing comma in call", "unknown token: '\\u{0}'"]
KEYWORDS = ["abstract", "alias", "annotation", "asm", "begin", "break", "case", "class", "def", "do", "else", "elsif", "end", "ensure", "enum", "extend", "for", "fun", "if", "in", "include", "instance_sizeof", "lib", "macro", "module", "next", "of", "offsetof", "out", "pointerof", "private", "protected", "require", "rescue", "return", "select", "sizeof", "struct", "super", "then", "type", "typeof", "union", "uninitialized", "unless", "until", "verbatim", "when", "while", "with", "yield"] of ::String
METHOD_KEYWORDS = ["as", "as?", "is_a?", "nil?", "responds_to?"] of ::String

Constructors

Instance Method Summary

Instance methods inherited from class Reference

==(other : self)
==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil)
same?
, to_s(io : IO) : Nil to_s

Constructor methods inherited from class Reference

new new, unsafe_construct(address : Pointer, *args, **opts) : self unsafe_construct

Class methods inherited from class Reference

pre_initialize(address : Pointer) pre_initialize

Instance methods inherited from class Object

! : Bool !, !=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash
hash
, in?(collection : Object) : Bool
in?(*values : Object) : Bool
in?
, inspect(io : IO) : Nil
inspect : String
inspect
, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil!
not_nil!
, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String
to_json
, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil
to_pretty_json
, to_s(io : IO) : Nil
to_s : String
to_s
, to_yaml(io : IO) : Nil
to_yaml : String
to_yaml
, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

Class methods inherited from class Object

from_json(string_or_io : String | IO, root : String)
from_json(string_or_io : String | IO)
from_json
, from_yaml(string_or_io : String | IO) from_yaml

Macros inherited from class Object

class_getter(*names, &block) class_getter, class_getter!(*names) class_getter!, class_getter?(*names, &block) class_getter?, class_property(*names, &block) class_property, class_property!(*names) class_property!, class_property?(*names, &block) class_property?, class_setter(*names) class_setter, def_clone def_clone, def_equals(*fields) def_equals, def_equals_and_hash(*fields) def_equals_and_hash, def_hash(*fields) def_hash, delegate(*methods, to object) delegate, forward_missing_to(delegate) forward_missing_to, getter(*names, &block) getter, getter!(*names) getter!, getter?(*names, &block) getter?, property(*names, &block) property, property!(*names) property!, property?(*names, &block) property?, setter(*names) setter

Constructor Detail

def self.new(repl : Nil | Crystal::Repl = nil) #

[View source]

Instance Method Detail

def auto_complete(name_filter : String, expression : String) : Tuple(String, Array(String)) #
Description copied from class Reply::Reader

Override to integrate auto-completion.

current_word is picked following word_delimiters. It expects to return Tuple with:

default: {"", [] of String}


[View source]
def auto_completion_display_entry(io : IO, entry_matched : String, entry_remaining : String) #
Description copied from class Reply::Reader

Override to customize how entry is displayed.

Entry is split in two (entry_matched + entry_remaining). entry_matched correspond to the part already typed when auto-completion was triggered.

default: entry_matched bright + entry_remaining normal.


[View source]
def auto_completion_display_selected_entry(io : IO, entry : String) #
Description copied from class Reply::Reader

Override to customize how the selected entry is displayed.

default: entry bright on dark grey


[View source]
def auto_completion_display_title(io : IO, title : String) #
Description copied from class Reply::Reader

Override to customize how title is displayed.

default: title underline + ":"


[View source]
def continue?(expression : String) : Bool #
Description copied from class Reply::Reader

Override this method to makes the interface continue on multiline, depending of the expression.

default: false


[View source]
def format(expression : String) : String | Nil #
Description copied from class Reply::Reader

Override to enable reformatting after submitting.

default: unchanged expression


[View source]
def highlight(expression : String) : String #
Description copied from class Reply::Reader

Override to enable expression highlighting.

default: uncolored expression


[View source]
def indentation_level(expression_before_cursor : String) : Int32 | Nil #
Description copied from class Reply::Reader

Override to return the expected indentation level in function of expression before cursor.

default: 0


[View source]
def prompt(io : IO, line_number : Int32, color : Bool) : Nil #
Description copied from class Reply::Reader

Override to customize the prompt.

Toggle the colorization following color.

default: $:001>


[View source]
def reindent_line(line) #

[View source]
def save_in_history?(expression : String) : Bool #
Description copied from class Reply::Reader

Override to select which expression is saved in history.

default: !expression.blank?


[View source]