Variable: cperl-praise
cperl-praise is a variable defined in cperl-mode.el.gz.
Value
please-ignore-this-line
Documentation
Advantages of CPerl mode.
0) It uses the newest syntax-table property ;-);
1) It does 99% of Perl syntax correct.
When using syntax-table property for syntax assist hints, it should
handle 99.995% of lines correct - or somesuch. It automatically
updates syntax assist hints when you edit your script.
2) It is generally believed to be "the most user-friendly Emacs
package" whatever it may mean (I doubt that the people who say similar
things tried _all_ the rest of Emacs ;-), but this was not a lonely
voice);
3) Everything is customizable, one-by-one or in a big sweep;
4) It has many easily-accessible "tools":
a) Can run program, check syntax, start debugger;
b) Can lineup vertically "middles" of rows, like = in
a = b;
cc = d;
c) Can insert spaces where this improves readability (in one
interactive sweep over the buffer);
d) Has support for imenu, including:
1) Separate unordered list of "interesting places";
2) Separate TOC of POD sections;
3) Separate list of packages/classes;
4) Hierarchical view of methods in (sub)packages;
5) and functions (by the full name - with package);
e) Has a builtin list of one-line explanations for perl constructs.
f) Can show these explanations if you stay long enough at the
corresponding place (or on demand);
g) Has an enhanced fontification (using 3 or 4 additional faces
comparing to font-lock - basically, different
namespaces in Perl have different colors);
h) Can construct TAGS basing on its knowledge of Perl syntax,
the standard menu has 6 different way to generate
TAGS (if "by directory", .xs files - with C-language
bindings - are included in the scan);
i) Can build a hierarchical view of classes (via imenu) basing
on generated TAGS file;
j) Has electric parentheses, electric newlines, uses Abbrev
for electric logical constructs
while () {}
with different styles of expansion (context sensitive
to be not so bothering). Electric parentheses behave
"as they should" in a presence of a visible region.
k) Changes msb.el "on the fly" to insert a group "Perl files";
l) Can convert from
if (A) { B }
to
B if A;
m) Highlights (by user-choice) either 3-delimiters constructs
(such as tr/a/b/), or regular expressions and y/tr;
o) Is able to manipulate Perl Regular Expressions to ease
conversion to a more readable form.
p) Can ispell POD sections and HERE-DOCs.
q) Understands comments and character classes inside regular
expressions; can find matching () and [] in a regular expression.
r) Allows indentation of //x-style regular expressions;
s) Highlights different symbols in regular expressions according
to their function; much less problems with backslashitis;
t) Allows you to locate regular expressions which contain
interpolated parts.
5) The indentation engine was very smart, but most of tricks may be
not needed anymore with the support for syntax-table property. Has
progress indicator for indentation (with imenu loaded).
6) Indent-region improves inline-comments as well; also corrects
whitespace *inside* the conditional/loop constructs.
7) Fill-paragraph correctly handles multi-line comments;
8) Can switch to different indentation styles by one command, and restore
the settings present before the switch.
9) When doing indentation of control constructs, may correct
line-breaks/spacing between elements of the construct.
10) Uses a linear-time algorithm for indentation of regions.
11) Syntax-highlight, indentation, sexp-recognition inside regular expressions.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cperl-mode.el.gz
(defvar cperl-praise 'please-ignore-this-line
"Advantages of CPerl mode.
0) It uses the newest `syntax-table' property ;-);
1) It does 99% of Perl syntax correct.
When using `syntax-table' property for syntax assist hints, it should
handle 99.995% of lines correct - or somesuch. It automatically
updates syntax assist hints when you edit your script.
2) It is generally believed to be \"the most user-friendly Emacs
package\" whatever it may mean (I doubt that the people who say similar
things tried _all_ the rest of Emacs ;-), but this was not a lonely
voice);
3) Everything is customizable, one-by-one or in a big sweep;
4) It has many easily-accessible \"tools\":
a) Can run program, check syntax, start debugger;
b) Can lineup vertically \"middles\" of rows, like `=' in
a = b;
cc = d;
c) Can insert spaces where this improves readability (in one
interactive sweep over the buffer);
d) Has support for imenu, including:
1) Separate unordered list of \"interesting places\";
2) Separate TOC of POD sections;
3) Separate list of packages/classes;
4) Hierarchical view of methods in (sub)packages;
5) and functions (by the full name - with package);
e) Has a builtin list of one-line explanations for perl constructs.
f) Can show these explanations if you stay long enough at the
corresponding place (or on demand);
g) Has an enhanced fontification (using 3 or 4 additional faces
comparing to font-lock - basically, different
namespaces in Perl have different colors);
h) Can construct TAGS basing on its knowledge of Perl syntax,
the standard menu has 6 different way to generate
TAGS (if \"by directory\", .xs files - with C-language
bindings - are included in the scan);
i) Can build a hierarchical view of classes (via imenu) basing
on generated TAGS file;
j) Has electric parentheses, electric newlines, uses Abbrev
for electric logical constructs
while () {}
with different styles of expansion (context sensitive
to be not so bothering). Electric parentheses behave
\"as they should\" in a presence of a visible region.
k) Changes msb.el \"on the fly\" to insert a group \"Perl files\";
l) Can convert from
if (A) { B }
to
B if A;
m) Highlights (by user-choice) either 3-delimiters constructs
(such as tr/a/b/), or regular expressions and `y/tr';
o) Is able to manipulate Perl Regular Expressions to ease
conversion to a more readable form.
p) Can ispell POD sections and HERE-DOCs.
q) Understands comments and character classes inside regular
expressions; can find matching () and [] in a regular expression.
r) Allows indentation of //x-style regular expressions;
s) Highlights different symbols in regular expressions according
to their function; much less problems with backslashitis;
t) Allows you to locate regular expressions which contain
interpolated parts.
5) The indentation engine was very smart, but most of tricks may be
not needed anymore with the support for `syntax-table' property. Has
progress indicator for indentation (with `imenu' loaded).
6) Indent-region improves inline-comments as well; also corrects
whitespace *inside* the conditional/loop constructs.
7) Fill-paragraph correctly handles multi-line comments;
8) Can switch to different indentation styles by one command, and restore
the settings present before the switch.
9) When doing indentation of control constructs, may correct
line-breaks/spacing between elements of the construct.
10) Uses a linear-time algorithm for indentation of regions.
11) Syntax-highlight, indentation, sexp-recognition inside regular expressions.")