Auto create configuration objects for plugins.

Whenever a plugin is activated a configuration object (using OpenStruct) will be
created in Pry.config for that plugin. For example, for the plugin "pry-doc" the
object Pry.config.pry_doc would be created.

See #436 for more information.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Don't indent inside strings. [Fixes #535]

This is acheived by keeping track of which Strings are open and
re-opening them before giving CodeRay the new line of input.

I considered instead passing the entire input through CodeRay and then
just extracting the last line of tokens, unfortunately this would
exhibit O(n²) behaviour when pasting code into the terminal; and it's
not obvious whether the tokenization would be stable enough to guarantee
an easy way to get the last line of tokens.
Set plugin options before requiring the plugin.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Check `respond_to?(:winsize)` (fix #549)
Fix Jruby...
Fix `exit` after previous syntax error in `exit` command.

Before this commit, the binding stack was cleared before evaluating
the user-given value for the `exit` command. If a syntax error happened
when `eval`ing it, the program would still be running with no elements
in the binding stack, causing next calls of `exit` to fail.
version 0.9.9.4pre1, fixed winsize bug
version 0.9.9.4 bugfix release

Fixes `undefined method `winsize' for #<IO:<STDOUT>>` error (#549), and exit breakage on syntax error (#550).
Always start the prompt in the first column (fix #551)
prevent ZeroDivisionError when cols == 0
Merge remote-tracking branch 'sonnym/master'
Reject measurements of the window size that are 0
Preserve backticks and don't double highlight [Fixes #562]

Before this change all `` pairs were removed from documentation which
makes the ``foo'' quoting style used by some authors look very odd.

We'd also try to syntax highlight code inside `` inside code, which
caused nasty rendering errors as the escape sequences got tangled up.
Revert "Always start the prompt in the first column (fix #551)"

This fixes #564 this commit does more harm than good, as it
causes things to break badly on libedit. The bug it's fixing is
also quite trivial and highly unlikely to annoy anybody in
practice.

This reverts commit 7af3660042797ef37008cee7585858ffbc483543.
Merge pull request #548 from YorickPeterse/master

Auto create configuration objects for plugins
v0.9.9.5 minor release
I WAZ ERE 2012
version 0.9.9.6 release

As a result of the 0.9.9.5 fix for #558 we got the following
error on 1.8.7:

"On MRI 1.8.7-p358, this results in "TypeError:
String can't be coerced into Fixnum",".

This commit should fix that.
Set _file_ and _line_ when calling whereami.

When a user would place a call to `binding.pry` followed by calling `whereami`
the locals _file_ and _line_ would not be set properly. This commit fixes this
by using the helper method `set_file_and_dir_locals()` (which also ensures _dir_
is set properly) as well as `_pry_.inject_local`.

Currently the _file_ local is set to /path/to/your/directory/(pry) if the
binding was set in a Pry session itself. I'm not entirely sure if this is
expected behavior, if this isn't the case it shouldn't be too hard to detect and
fix in a following commit.

This commit fixes #574.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
_line_ should not be set by whereami.

Due to a small misunderstanding _line_ was set when really only _dir_ and _file_
had to be set when the user would call `whereami`.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>