Sepia.3pm

Langue: en

Autres versions - même langue

Version: 2008-11-06 (ubuntu - 08/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Sepia - Simple Emacs-Perl Interface

SYNOPSIS

From inside Emacs:
    M-x load-library RET sepia RET
    M-x sepia-repl RET
 
 

At the prompt in the "*sepia-repl*" buffer:

    main @> ,help
 
 

For more information, please see Sepia.html or sepia.info, which come with the distribution.

DESCRIPTION

Sepia is a set of features to make Emacs a better tool for Perl development. This package contains the Perl side of the implementation, including all user-serviceable parts (for the cross-referencing facility see Sepia::Xref). This document is aimed as Sepia developers; for user documentation, see ``index.html'' in sepia.

Though not intended to be used independent of the Emacs interface, the Sepia module's functionality can be used through a rough procedural interface.

@compls = completions($string [, $type])

Find a list of completions for $string with glob type $type, which may be ``SCALAR'', ``HASH'', ``ARRAY'', ``CODE'', ``IO'', or the special value ``VARIABLE'', which means either scalar, hash, or array. Completion operates on word subparts separated by [:_], so e.g. ``S:m_w'' completes to ``Sepia::my_walksymtable''.

@compls = method_completions($expr, $string [,$eval])

Complete among methods on the object returned by $expr. The $eval argument, if present, is a function used to do the evaluation; the default is "eval", but for example the Sepia REPL uses "Sepia::repl_eval". Warning: Since it has to evaluate $expr, method completion can be extremely problematic. Use with care.

@locs = location(@names)

Return a list of [file, line, name] triples, one for each function name in @names.

@matches = apropos($name [, $is_regex])

Search for function $name, either in all packages or, if $name is qualified, only in one package. If $is_regex is true, the non-package part of $name is a regular expression.

@names = mod_subs($pack)

Find subs in package $pack.

@decls = mod_decls($pack)

Generate a list of declarations for all subroutines in package $pack.

$info = module_info($module, $type)

Emacs-called function to get module information.

$file = mod_file($mod)

Find the likely file owner for module $mod.

@mods = package_list

Gather a list of all distributions on the system. XXX UNUSED

@mods = module_list

Gather a list of all packages (.pm files, really) installed on the system, grouped by distribution. XXX UNUSED

@mods = doc_list

Gather a list of all documented packages (.?pm files, really) installed on the system, grouped by distribution. XXX UNUSED

lexicals($subname)

Return a list of $subname's lexical variables. Note that this includes all nested scopes --- I don't know if or how Perl distinguishes inner blocks.

$lisp = tolisp($perl)

Convert a Perl scalar to some ELisp equivalent.

printer(\@res, $wantarray)

Print @res appropriately on the current filehandle. If $ISEVAL is true, use terse format. Otherwise, use human-readable format, which can use either Data::Dumper, YAML, or Data::Dump.

define_shortcut $name, $sub [, $doc [, $shortdoc]]

Define $name as a shortcut for function $sub.

repl()

Execute a command interpreter on standard input and standard output. If you want to use different descriptors, localize them before calling "repl()". The prompt has a few bells and whistles, including:
Obviously-incomplete lines are treated as multiline input (press 'return' twice or 'C-c' to discard).
"die" is overridden to enter a debugging repl at the point "die" is called.

Behavior is controlled in part through the following package-globals:

$PACKAGE --- evaluation package
$PRINTER --- result printer (default: dumper)
$PS1 --- the default prompt
$STRICT --- whether 'use strict' is applied to input
$WANTARRAY --- evaluation context
$PRINT_PRETTY --- format some output nicely (default = 1)
Format some values nicely, independent of $PRINTER. Currently, this displays arrays of scalars as columns.
$REPL_LEVEL --- level of recursive repl() calls
If zero, then initialization takes place.
%REPL --- maps shortcut names to handlers
%REPL_DOC --- maps shortcut names to documentation
%REPL_SHORT --- maps shortcut names to brief usage

$status = html_module_list([$file [, $prefix]])

Generate an HTML list of installed modules, looking inside of packages. If $prefix is missing, uses ``about://perldoc/''. If $file is given, write the result to $file; otherwise, return it as a string.

$status = html_package_list([$file [, $prefix]])

Generate an HTML list of installed top-level modules, without looking inside of packages. If $prefix is missing, uses ``about://perldoc/''. $file is the same as for "html_module_list".

TODO

See the README file included with the distribution.

SEE ALSO

Sepia's public GIT repository is located at <http://repo.or.cz/w/sepia.git>.

There are several modules for Perl development in Emacs on CPAN, including Devel::PerlySense and PDE. For a complete list, see <http://emacswiki.org/cgi-bin/wiki/PerlLanguage>.

AUTHOR

Sean O'Rourke, <seano@cpan.org>

Bug reports welcome, patches even more welcome.

Copyright (C) 2005-2008 Sean O'Rourke. All rights reserved, some wrongs reversed. This module is distributed under the same terms as Perl itself.