Perl6-Pugs
view release on metacpan or search on metacpan
util/cperl-mode.el view on Meta::CPAN
... NE ... Obsolete synonym of `ne'.
abs [ EXPR ] absolute value
... and ... Low-precedence synonym for &&.
bless REFERENCE [, PACKAGE] Makes reference into an object of a package.
chomp [LIST] Strips $/ off LIST/$_. Returns count. Special if $/ eq ''!
chr Converts a number to char with the same ordinal.
else Part of if/unless {BLOCK} elsif {BLOCK} else {BLOCK}.
elsif Part of if/unless {BLOCK} elsif {BLOCK} else {BLOCK}.
exists $HASH{KEY} True if the key exists.
format [NAME] = Start of output format. Ended by a single dot (.) on a line.
formline PICTURE, LIST Backdoor into \"format\" processing.
glob EXPR Synonym of <EXPR>.
lc [ EXPR ] Returns lowercased EXPR.
lcfirst [ EXPR ] Returns EXPR with lower-cased first letter.
grep EXPR,LIST or grep {BLOCK} LIST Filters LIST via EXPR/BLOCK.
map EXPR, LIST or map {BLOCK} LIST Applies EXPR/BLOCK to elts of LIST.
no PACKAGE [SYMBOL1, ...] Partial reverse for `use'. Runs `unimport' method.
not ... Low-precedence synonym for ! - negation.
... or ... Low-precedence synonym for ||.
pos STRING Set/Get end-position of the last match over this string, see \\G.
quotemeta [ EXPR ] Quote regexp metacharacters.
qw/WORD1 .../ Synonym of split('', 'WORD1 ...')
readline FH Synonym of <FH>.
readpipe CMD Synonym of `CMD`.
ref [ EXPR ] Type of EXPR when dereferenced.
sysopen FH, FILENAME, MODE [, PERM] (MODE is numeric, see Fcntl.)
tie VAR, PACKAGE, LIST Hide an object behind a simple Perl variable.
tied Returns internal object for a tied data.
uc [ EXPR ] Returns upcased EXPR.
ucfirst [ EXPR ] Returns EXPR with upcased first letter.
untie VAR Unlink an object from a simple Perl variable.
use PACKAGE [SYMBOL1, ...] Compile-time `require' with consequent `import'.
... xor ... Low-precedence synonym for exclusive or.
prototype \&SUB Returns prototype of the function given a reference.
=head1 Top-level heading.
=head2 Second-level heading.
=head3 Third-level heading (is there such?).
=over [ NUMBER ] Start list.
=item [ TITLE ] Start new item in the list.
=back End list.
=cut Switch from POD to Perl.
=pod Switch from Perl to POD.
")
(defun cperl-switch-to-doc-buffer ()
"Go to the perl documentation buffer and insert the documentation."
(interactive)
(let ((buf (get-buffer-create cperl-doc-buffer)))
(if (interactive-p)
(switch-to-buffer-other-window buf)
(set-buffer buf))
(if (= (buffer-size) 0)
(progn
(insert (documentation-property 'cperl-short-docs
'variable-documentation))
(setq buffer-read-only t)))))
(defun cperl-beautify-regexp-piece (b e embed level)
;; b is before the starting delimiter, e before the ending
;; e should be a marker, may be changed, but remains "correct".
;; EMBED is nil iff we process the whole REx.
;; The REx is guaranteed to have //x
;; LEVEL shows how many levels deep to go
;; position at enter and at leave is not defined
(let (s c tmp (m (make-marker)) (m1 (make-marker)) c1 spaces inline code pos)
(if (not embed)
(goto-char (1+ b))
(goto-char b)
(cond ((looking-at "(\\?\\\\#") ; (?#) wrongly commented when //x-ing
(forward-char 2)
(delete-char 1)
(forward-char 1))
((looking-at "(\\?[^a-zA-Z]")
(forward-char 3))
((looking-at "(\\?") ; (?i)
(forward-char 2))
(t
(forward-char 1))))
(setq c (if embed (current-indentation) (1- (current-column)))
c1 (+ c (or cperl-regexp-indent-step cperl-indent-level)))
(or (looking-at "[ \t]*[\n#]")
(progn
(insert "\n")))
(goto-char e)
(beginning-of-line)
(if (re-search-forward "[^ \t]" e t)
(progn ; Something before the ending delimiter
(goto-char e)
(delete-horizontal-space)
(insert "\n")
(cperl-make-indent c)
(set-marker e (point))))
(goto-char b)
(end-of-line 2)
(while (< (point) (marker-position e))
(beginning-of-line)
(setq s (point)
inline t)
(skip-chars-forward " \t")
(delete-region s (point))
(cperl-make-indent c1)
(while (and
inline
(looking-at
(concat "\\([a-zA-Z0-9]+[^*+{?]\\)" ; 1 word
"\\|" ; Embedded variable
"\\$\\([a-zA-Z0-9_]+\\([[{]\\)?\\|[^\n \t)|]\\)" ; 2 3
"\\|" ; $ ^
"[$^]"
"\\|" ; simple-code simple-code*?
"\\(\\\\.\\|[^][()#|*+?\n]\\)\\([*+{?]\\??\\)?" ; 4 5
"\\|" ; Class
"\\(\\[\\)" ; 6
"\\|" ; Grouping
"\\((\\(\\?\\)?\\)" ; 7 8
"\\|" ; |
"\\(|\\)"))) ; 9
(goto-char (match-end 0))
(setq spaces t)
(cond ((match-beginning 1) ; Alphanum word + junk
(forward-char -1))
( run in 0.699 second using v1.01-cache-2.11-cpan-71847e10f99 )