• Richard M. Stallman's avatar
    Can use linear algorithm for indentation if Emacs supports it. · 5bd52f0e
    Richard M. Stallman authored
    (cperl-after-expr-p):	It is BLOCK if we reach lim when backup sexp.
    (cperl-after-block-p):	Likewise.
    (cperl-after-block-and-statement-beg): Likewise.
    (cperl-after-block-p):	After END/BEGIN we are a block.
    (cperl-after-expr-p):	Skip labels when checking
    (cperl-indent-region):	Make a marker for END - text added/removed.
    Disable hooks during the call (how to call them later?).
    Now indents 820-line-long function in 6.5 sec (including
    syntaxification) the first time	(when buffer has few
    properties), 7.1 sec the second time.
    (cperl-indent-region):	Do not indent whitespace lines
    (cperl-style-alist)
    	Include `cperl-merge-trailing-else' where the value is clear.
    (cperl-styles-entries): Likewise.
    (cperl-problems):	Improvements to docs.
    (cperl-tips):		Likewise.
    (cperl-non-problems):	Likewise.
    (cperl-mode):		Make lazy syntaxification possible.
    Loads pseudo-faces for the sake of `cperl-find-pods-heres' (for 19.30).
    `font-lock-unfontify-region-function' was set to a wrong function.
    
    (cperl-find-pods-heres): Safe a position in buffer where it is safe to
    restart syntaxification.  Changed so that -d ?foo? is a RE. Do
    not warn on `=cut' if doing a chunk only. 1 << 6 was OK,
    but 1<<6 was considered as HERE-doc.
    <file/glob> made into a string.
    Postpone addition of faces after syntactic step.
    Recognition of <FH> was wrong.
    Highlight `gem' in s///gem as a keyword.  `qr' recognized.
    Knows that split// is null-RE.
    Highlights separators in 3-parts expressions as labels.
    <> was considered as a glob.
    Would err if the last line is `=head1'.
    $a-1 ? foo : bar; was a considered a regexp.
    `<< (' was considered a start of HERE-doc.
    mark qq[]-etc sections as syntax-type=string
    Was not processing sub protos after a comment ine.
    Was treating $a++ <= 5 as a glob.
    Tolerate unfinished REx at end-of-buffer.
    `unwind-protect' was left commented.
    / and ? after : start a REx.
    
    (cperl-syntaxify-by-font-lock): Set to t, should be safe now.
    Better default, customizes to `message' too, off in text-mode.
    
    (cperl-array-face): Renamed from `font-lock-emphasized-face',
    `defface'd.
    (cperl-hash-face): Renamed from `font-lock-other-emphasized-face'.
    `defface'd.
    (cperl-emacs-can-parse):	New state variable.
    (cperl-indent-line):	Corrected to use global state.
    (cperl-calculate-indent):	Likewise.
    (cperl-fix-line-spacing):	Likewise (not used yet).
    (cperl-calculate-indent):	Did not consider `,' as
    continuation mark for statements.
    (cperl-calculate-indent): Avoid parse-data optimization at toplevel.
    Remove another parse-data optimization at toplevel: would
    indent correctly.
    Correct for labels when calculating indentation of continuations.
    Docstring updated.
    (cperl-choose-color):	Converted to a function (to be
    compilable in text-mode).
    (cperl-dark-background):	Disable without window-system.
    Do `defface' only if window-system.
    (cperl-fix-line-spacing):	sped up to bail out early.
    (x-color-defined-p): was not compiling on XEmacs
    Was defmacro'ed with a tick.  Remove another def.
    (cperl-clobber-lisp-bindings): if set, C-c variants are the old ones
    (cperl-unwind-to-safe):	New function.
    (cperl-fontify-syntaxically): Use `cperl-unwind-to-safe' to start at reasonable position.
    (cperl-fontify-syntaxically): Unwinds start and end to go out of
    			     long strings (not very successful).
    (cperl-forward-re):	Highlight the trailing / in s/foo// as string.
    Highlight the starting // in s//foo/ as function-name.
    Emit a meaningful error instead of a cryptic one for an
    uncomplete REx near end-of-buffer.
    
    (cperl-electric-keyword):	`qr' recognized.
    (cperl-electric-else):		Likewise
    (cperl-to-comment-or-eol):	Likewise
    (cperl-make-regexp-x):	Likewise
    (cperl-init-faces):	Likewise, and `lock' (as overridable?).
    Corrected to use new macros;
    `if' for copying `reference-face' to `constant-face' was backward.
    remove init `font-lock-other-emphasized-face',
    `font-lock-emphasized-face', `font-lock-keyword-face'.
    Interpolate `cperl-invalid-face'.
    (cperl-make-regexp-x):	Misprint in a message.
    (cperl-syntaxify-unwind): New configuration variable
    (cperl-fontify-m-as-s):	New configuration variable
    (cperl-electric-pod):	check for after-expr was performed
    inside of POD too.
    (cperl-backward-to-noncomment):	better treatment of PODs and HEREs.
    (cperl-clobber-mode-lists): New configuration variable.
    (cperl-not-bad-style-regexp):	Updated.
    Init:			`cperl-is-face' was busted.
    (cperl-make-face):	New macros.
    (cperl-force-face):	New macros.
    (font-lock-other-type-face): Done via `defface' too.
    (cperl-nonoverridable-face):	New face.  Renamed from
    `font-lock-other-type-face'.
    (cperl-init-faces-weak):	use `cperl-force-face'.
    (cperl-comment-indent):	Commenting __END__ was not working.
    (cperl-indent-for-comment):	Likewise.
    (cperl-write-tags):	Correct for XEmacs's `visit-tags-table-buffer'.
    When removing old TAGS info was not relativizing filename.
    (cperl-tags-hier-init):	Gross hack to pretend we work (are we?).
    Another try to work around XEmacs problems.  Better progress messages.
    (toplevel):		require custom unprotected => failure on 19.28.
    (cperl-xemacs-p):	defined when compile too
    (cperl-find-tags):	Was writing line/pos in a wrong order,
    pos off by 1 and not at beg-of-line.
    (cperl-etags-snarf-tag): New macro
    (cperl-etags-goto-tag-location): New macro
    (cperl-version):	New variable.  New menu entry
    random docstrings:	References to "future" 20.3 removed.
    Menu was described as `CPerl' instead of `Perl'
    (perl-font-lock-keywords): Would not highlight `sub foo($$);'.
    (cperl-toggle-construct-fix): Was toggling to t instead of 1.
    (cperl-ps-print-init):	Associate `cperl-array-face', `cperl-hash-face'
    Remove `font-lock-emphasized-face', `font-lock-other-emphasized-face',
    `font-lock-reference-face', `font-lock-keyword-face'.
    Use `eval-after-load'.
    Remove not-CPerl-related faces.
    (cperl-tips-faces):	New variable and an entry into Mini-docs.
    (cperl-indent-exp):	Was not processing else-blocks.
    (cperl-get-state):	NOP line removed.
    (cperl-ps-print):	New function and menu entry.
    (cperl-ps-print-face-properties):	New configuration variable.
    (cperl-invalid-face):	New configuration variable.
    (perl-font-lock-keywords):	Highlight trailing whitespace
    (cperl-contract-levels):	Documentation corrected.
    (cperl-contract-level):		Likewise.
    (cperl-ps-extend-face-list):	New macro.
    (cperl-invalid-face):	Change to ''underline.
    5bd52f0e
cperl-mode.el 246 KB