Commit 5bd52f0e authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

Can use linear algorithm for indentation if Emacs supports it.

(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.
parent 75e4db34
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment