Added auto4perl includes and (highly incomplete) API docs
Originally committed to SVN as r1758.
This commit is contained in:
parent
224f592f17
commit
09924e9716
4 changed files with 165 additions and 0 deletions
6
automation/include/Aegisub/PerlConsole.pm
Normal file
6
automation/include/Aegisub/PerlConsole.pm
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
package Aegisub::PerlConsole;
|
||||||
|
use Exporter 'import';
|
||||||
|
|
||||||
|
@EXPORT = qw( echo register_console );
|
||||||
|
|
||||||
|
1;
|
6
automation/include/Aegisub/Script.pm
Normal file
6
automation/include/Aegisub/Script.pm
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
package Aegisub::Script;
|
||||||
|
use Exporter 'import';
|
||||||
|
|
||||||
|
@EXPORT = qw( register_macro set_info );
|
||||||
|
|
||||||
|
1;
|
16
automation/include/perl-console.pl
Normal file
16
automation/include/perl-console.pl
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# Perl console script
|
||||||
|
# by Simone Cociancich
|
||||||
|
# This script simply call the registration function for the builtin perl console
|
||||||
|
# the perl console is chiefly intended as a development and debug tool
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
Aegisub::Script::set_info(
|
||||||
|
'Perl console',
|
||||||
|
"\nThis script provides a console for messing with the perl engine \\^^/
|
||||||
|
(if you break something don't complain >:)",
|
||||||
|
'ShB');
|
||||||
|
|
||||||
|
use Aegisub::PerlConsole;
|
||||||
|
register_console();
|
137
automation/v4-docs/perl-api.txt
Normal file
137
automation/v4-docs/perl-api.txt
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
------------------------------------
|
||||||
|
Quick reference on Perl engine's API
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Every symbol contained in this reference is automatically made visible to the
|
||||||
|
executing script. They are not however imported in the script's package, so
|
||||||
|
they must be referenced with their full name. (A mechanism to import them
|
||||||
|
through the canonical perl commands `use' and `import' will be deployed sooner
|
||||||
|
or later.)
|
||||||
|
|
||||||
|
|
||||||
|
====================================
|
||||||
|
package Aegisub
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Subroutines defined:
|
||||||
|
|
||||||
|
text_extents STYLE, TEXT
|
||||||
|
Computes the metric for a string of text, based on a specific style.
|
||||||
|
Arguments:
|
||||||
|
STYLE The style to use, as a string or ref to a style line.
|
||||||
|
TEXT Text for which to compute the metrics.
|
||||||
|
Returns:
|
||||||
|
WIDTH The width of the text (if called in scalar context, only this is returned).
|
||||||
|
ASCENT The ascent, i.e. the distance from the baseline to the top.
|
||||||
|
DESCENT Descent, i.e. the distance from the baseline to the bottom.
|
||||||
|
EXTLEADING External leading, i.e. the distance between to lines of text.
|
||||||
|
|
||||||
|
warn LIST
|
||||||
|
Prints a warning through the GUI log facilities. It is automatically hooked
|
||||||
|
to the global `warn' function during script execution.
|
||||||
|
Arguments:
|
||||||
|
LIST List of arguments to print.
|
||||||
|
|
||||||
|
|
||||||
|
====================================
|
||||||
|
package Aegisub::PerlConsole
|
||||||
|
------------------------------------
|
||||||
|
This package contains the perl console, a debug tool not intended for normal
|
||||||
|
use by normal users. They are shown here for completeness.
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Subroutines defined:
|
||||||
|
|
||||||
|
echo LIST
|
||||||
|
Prints a list of arguments on the console, or on STDOUT if no console is
|
||||||
|
registered, a trailing \n is printed too
|
||||||
|
Arguments:
|
||||||
|
LIST List of arguments to print.
|
||||||
|
|
||||||
|
register_console NAME, DESC
|
||||||
|
Registers an instance of the console, as a macro. You don't want to know
|
||||||
|
any more because in fact you'll never have to do with this. >:)
|
||||||
|
Arguments:
|
||||||
|
NAME Set the name for the macro. (optional)
|
||||||
|
DESC Set the macro's description. (optional)
|
||||||
|
|
||||||
|
|
||||||
|
====================================
|
||||||
|
package Aegisub::Script
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Subroutines defined:
|
||||||
|
|
||||||
|
register_macro NAME, DESC, PROC_SUB, VAL_SUB
|
||||||
|
Register a new macro.
|
||||||
|
Arguments:
|
||||||
|
NAME The name of the macro.
|
||||||
|
DESC A dascription for the macro.
|
||||||
|
PROC_SUB A ref to a subroutine to be used as the macro processing function
|
||||||
|
(see the next section).
|
||||||
|
VAL_SUB A ref to a subrotine to be used as the macro validation function
|
||||||
|
(see next)(optional, if not defined will be considered as always true).
|
||||||
|
|
||||||
|
set_info NAME, DESC, AUTHOR, VERSION
|
||||||
|
You can set all of the script's info values with a call to this function
|
||||||
|
Arguments: see the parts about script variables, anything is optional.
|
||||||
|
|
||||||
|
|
||||||
|
====================================
|
||||||
|
package Aegisub::Script::pxxxxxxxx
|
||||||
|
------------------------------------
|
||||||
|
Every script that's loaded gets its code evaluated inside a different package -
|
||||||
|
whose name is chosen at 'random', whereas the perl interpreter is unique, so
|
||||||
|
they all see the same global package, and can possibly access other
|
||||||
|
scripts'. Therefore is recommended to ALWAYS declare all of the script's local
|
||||||
|
variables with `my', if they have to reside outside any function body, and of
|
||||||
|
course to `use strict' to check on this. You can still define another package
|
||||||
|
for your script, the script's predefined variables will still be visible
|
||||||
|
[maybe?] from it, but this is discouraged.
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Variables defined:
|
||||||
|
|
||||||
|
$script_author
|
||||||
|
Holds the script author's name. Default is the user executing aegisub.
|
||||||
|
|
||||||
|
$script_description
|
||||||
|
Holds a description for the script. Default is 'Perl script'.
|
||||||
|
|
||||||
|
$script_name
|
||||||
|
Holds the script's name. Default is the script's filename.
|
||||||
|
|
||||||
|
$script_version
|
||||||
|
Holds the script's version. Default is current aegisub's version.
|
||||||
|
|
||||||
|
$_script_path
|
||||||
|
The full path to the script's file. Any change to this variable is ignored.
|
||||||
|
|
||||||
|
$_script_package
|
||||||
|
The full script package as a string. Any change to this variable is
|
||||||
|
currently ignored
|
||||||
|
|
||||||
|
$_script_reload [BROKEN]
|
||||||
|
When this is set to true. The script will automatically be reload before
|
||||||
|
any execution if its file changed on disk. Useful during the development.
|
||||||
|
|
||||||
|
------------------------------------
|
||||||
|
Callbacks definable:
|
||||||
|
|
||||||
|
macro_processing_function LINES, SELECTED, ACTIVE
|
||||||
|
A function to be used as a callback for Aegisub::Script::register_macro().
|
||||||
|
The first two arguments can be modified, and the modification will be
|
||||||
|
reflected in the subtitles file
|
||||||
|
Arguments:
|
||||||
|
LINES A ref the the list containing the subtitle file lines
|
||||||
|
SELECTED A ref to an array of ints, showing the currently selected lines in
|
||||||
|
the file
|
||||||
|
ACTIVE Index of the currently active line in the subtitle file (sic)
|
||||||
|
|
||||||
|
macro_validation_function LINES, SELECTED, ACTIVE
|
||||||
|
A function to be used as a callback for Aegisub::Script::register_macro().
|
||||||
|
Arguments: same as macro_processing_function; however any change to the
|
||||||
|
first two ones will be ignored upon function return.
|
||||||
|
Returns:
|
||||||
|
VALID A 'bolean' value to indicate if the macro is applicable to this
|
||||||
|
particualar subtitles file.
|
Loading…
Reference in a new issue