The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Vim::Debug - Perl wrapper around a command line debugger

VERSION

version 0.7

SYNOPSIS

If you are new to the Vim::Debug project please read the Vim::Debug::Manual first.

    package Vim::Debug;

    my $debugger = Vim::Debug->new;
    $debugger->start;
    $debugger->write('s'); # step
    sleep(1) until $debugger->read;
    print $debugger->lineNumber;
    print $debugger->fileName;
    print $debugger->output;
    $debugger->write('q'); # quit

DESCRIPTION

The Vim::Debug project integrates the Perl debugger with Vim, allowing developers to visually step through their code and examine variables.

If you are new to the Vim::Debug project please read the Vim::Debug::Manual first.

Please note that this code is in beta and these libraries will be changing radically in the near future.

PREREQUISITES

Vim compiled with +signs and +perl.

INSTALL INSTRUCTIONS

Replace $VIMHOME with your vim configuration directory. (/home/username/.vim on unix.)

With cpanm

    TODO

With github

    git clone git@github.com:kablamo/VimDebug.git
    cd VimDebug
    perl Makefile.PL
    make
    sudo make install
    cp -r vim/* $VIMHOME/

Vim::Debug

The Vim::Debug class provides an object oriented wrapper around the Perl command line debugger.

Note that the read() method is non blocking.

FUNCTIONS

start()

Starts up the command line debugger in a seperate process.

start() always returns undef.

write($command)

Write $command to the debugger's stdin. This method blocks until the debugger process reads. Be ssure to include a newline.

write() always returns undef;

read()

Performs a nonblocking read on stdout from the debugger process. read() first looks for a debugger prompt.

If one is not found, the debugger isn't finished thinking so read() returns 0.

If a debugger prompt is found, the output is parsed. The following information is parsed out and saved into attributes: lineNumber(), fileName(), value(), and out().

read() will also send an interrupt (CTL+C) to the debugger process if the stop() attribute is set to true.

out($out)

If called with a parameter, out() removes ornaments (like <CTL-M> or irrelevant error messages or whatever) from text and saves the value.

If called without a parameter, out() returns the saved value.

lineNumber($number)

If $number parameter is used, the lineNumber class attribute is set using that value. If no parameters are passed, the current value of the lineNumber attribute is returned.

filePath($path)

If $path parameter is used, the filePath class attribute is set using that value. If no parameters are passed, the current value of the filePath attribute is returned.

dbgrPromptRegex($regex)

If $regex parameter is used, the dbgrPromptRegex class attribute is set using that value. If no parameters are passed, the current value of the dbgrPromptRegex attribute is returned.

SEE ALSO

Devel::ebug, perldebguts

AUTHOR

Eric Johnson, cpan at iijo : :dot: : org

COPYRIGHT

Copyright (C) 2003 - 3090, Eric Johnson

This module is GPL.

AUTHOR

Eric Johnson <vimdebug at iijo dot org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Eric Johnson.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.