The offset from the start of the file in code units of the given encoding.
The column number in code units of the given encoding where this location starts from the start of the line.
Add a list of extra arguments for the given command. args
may be an array or a string to be split on white space.
Accessor for the specific extra args hash (self initializing).
Invoke the command with the given list of normal arguments and additional build arguments.
Adds a section with title
and content
to the parser help view. Used for adding command arguments and default arguments.
Suggests gems based on the supplied gem_name
. Returns an array of alternative gem names.
Returns every spec that matches name
and optional requirements
.
Find
the best specification matching a full_name
.
Enumerates the outdated local gems yielding the local specification and the latest remote version.
This method may take some time to return as it must check each local gem against the server’s index.
Returns every spec in the record that matches name
and optional requirements
.
Scanning is intentionally conservative because we have no way of rolling back an aggressive block (at this time)
If a block was stopped for some trivial reason, (like an empty line) but the next line would have caused it to be balanced then we can check that condition and grab just one more line either up or down.
For example, below if we’re scanning up, line 2 might cause the scanning to stop. This is because empty lines might denote logical breaks where the user intended to chunk code which is a good place to stop and check validity. Unfortunately it also means we might have a “dangling” keyword or end.
1 def bark 2 3 end
If lines 2 and 3 are in the block, then when this method is run it would see it is unbalanced, but that acquiring line 1 would make it balanced, so that’s what it does.
Lines that have a ‘on_ignored_nl` type token and NOT a `BEG` type seem to be a good proxy for the ability to join multiple lines into one.
This predicate method is used to determine when those two criteria have been met.
The one known case this doesn’t handle is:
Ripper.lex <<~EOM a && b || c EOM
For some reason this introduces ‘on_ignore_newline` but with BEG type
See the OpenSSL
documentation for EVP_PKEY_new_raw_private_key()
Globs for files matching pattern
inside of directory
, returning absolute paths to the matching files.