Mercurial > emacs
changeset 54556:96f4b4c88092
(cperl-indent-alist, cperl-where-am-i): Comment out (it's unused and
unfinished code).
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Thu, 25 Mar 2004 22:43:31 +0000 |
parents | b136a4512609 |
children | 0d079d423ca1 |
files | lisp/progmodes/cperl-mode.el |
diffstat | 1 files changed, 162 insertions(+), 162 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/cperl-mode.el Thu Mar 25 18:05:29 2004 +0000 +++ b/lisp/progmodes/cperl-mode.el Thu Mar 25 22:43:31 2004 +0000 @@ -2693,168 +2693,168 @@ (cperl-calculate-indent)) (current-indentation)))))))))))))) -(defvar cperl-indent-alist - '((string nil) - (comment nil) - (toplevel 0) - (toplevel-after-parenth 2) - (toplevel-continued 2) - (expression 1)) - "Alist of indentation rules for CPerl mode. -The values mean: - nil: do not indent; - number: add this amount of indentation. - -Not finished, not used.") - -(defun cperl-where-am-i (&optional parse-start start-state) - ;; Unfinished - "Return a list of lists ((TYPE POS)...) of good points before the point. -POS may be nil if it is hard to find, say, when TYPE is `string' or `comment'. - -Not finished, not used." - (save-excursion - (let* ((start-point (point)) - (s-s (cperl-get-state)) - (start (nth 0 s-s)) - (state (nth 1 s-s)) - (prestart (nth 3 s-s)) - (containing-sexp (car (cdr state))) - (case-fold-search nil) - (res (list (list 'parse-start start) (list 'parse-prestart prestart)))) - (cond ((nth 3 state) ; In string - (setq res (cons (list 'string nil (nth 3 state)) res))) ; What started string - ((nth 4 state) ; In comment - (setq res (cons '(comment) res))) - ((null containing-sexp) - ;; Line is at top level. - ;; Indent like the previous top level line - ;; unless that ends in a closeparen without semicolon, - ;; in which case this line is the first argument decl. - (cperl-backward-to-noncomment (or parse-start (point-min))) - ;;(skip-chars-backward " \t\f\n") - (cond - ((or (bobp) - (memq (preceding-char) (append ";}" nil))) - (setq res (cons (list 'toplevel start) res))) - ((eq (preceding-char) ?\) ) - (setq res (cons (list 'toplevel-after-parenth start) res))) - (t - (setq res (cons (list 'toplevel-continued start) res))))) - ((/= (char-after containing-sexp) ?{) - ;; line is expression, not statement: - ;; indent to just after the surrounding open. - ;; skip blanks if we do not close the expression. - (setq res (cons (list 'expression-blanks - (progn - (goto-char (1+ containing-sexp)) - (or (looking-at "[ \t]*\\(#\\|$\\)") - (skip-chars-forward " \t")) - (point))) - (cons (list 'expression containing-sexp) res)))) - ((progn - ;; Containing-expr starts with \{. Check whether it is a hash. - (goto-char containing-sexp) - (not (cperl-block-p))) - (setq res (cons (list 'expression-blanks - (progn - (goto-char (1+ containing-sexp)) - (or (looking-at "[ \t]*\\(#\\|$\\)") - (skip-chars-forward " \t")) - (point))) - (cons (list 'expression containing-sexp) res)))) - (t - ;; Statement level. - (setq res (cons (list 'in-block containing-sexp) res)) - ;; Is it a continuation or a new statement? - ;; Find previous non-comment character. - (cperl-backward-to-noncomment containing-sexp) - ;; Back up over label lines, since they don't - ;; affect whether our line is a continuation. - ;; Back up comma-delimited lines too ????? - (while (or (eq (preceding-char) ?\,) - (save-excursion (cperl-after-label))) - (if (eq (preceding-char) ?\,) - ;; Will go to beginning of line, essentially - ;; Will ignore embedded sexpr XXXX. - (cperl-backward-to-start-of-continued-exp containing-sexp)) - (beginning-of-line) - (cperl-backward-to-noncomment containing-sexp)) - ;; Now we get the answer. - (if (not (memq (preceding-char) (append ";}{" '(nil)))) ; Was ?\, - ;; This line is continuation of preceding line's statement. - (list (list 'statement-continued containing-sexp)) - ;; This line starts a new statement. - ;; Position following last unclosed open. - (goto-char containing-sexp) - ;; Is line first statement after an open-brace? - (or - ;; If no, find that first statement and indent like - ;; it. If the first statement begins with label, do - ;; not believe when the indentation of the label is too - ;; small. - (save-excursion - (forward-char 1) - (let ((colon-line-end 0)) - (while (progn (skip-chars-forward " \t\n" start-point) - (and (< (point) start-point) - (looking-at - "#\\|[a-zA-Z_][a-zA-Z0-9_]*:[^:]"))) - ;; Skip over comments and labels following openbrace. - (cond ((= (following-char) ?\#) - ;;(forward-line 1) - (end-of-line)) - ;; label: - (t - (save-excursion (end-of-line) - (setq colon-line-end (point))) - (search-forward ":")))) - ;; Now at the point, after label, or at start - ;; of first statement in the block. - (and (< (point) start-point) - (if (> colon-line-end (point)) - ;; Before statement after label - (if (> (current-indentation) - cperl-min-label-indent) - (list (list 'label-in-block (point))) - ;; Do not believe: `max' is involved - (list - (list 'label-in-block-min-indent (point)))) - ;; Before statement - (list 'statement-in-block (point)))))) - ;; If no previous statement, - ;; indent it relative to line brace is on. - ;; For open brace in column zero, don't let statement - ;; start there too. If cperl-indent-level is zero, - ;; use cperl-brace-offset + cperl-continued-statement-offset instead. - ;; For open-braces not the first thing in a line, - ;; add in cperl-brace-imaginary-offset. - - ;; If first thing on a line: ????? - (+ (if (and (bolp) (zerop cperl-indent-level)) - (+ cperl-brace-offset cperl-continued-statement-offset) - cperl-indent-level) - ;; Move back over whitespace before the openbrace. - ;; If openbrace is not first nonwhite thing on the line, - ;; add the cperl-brace-imaginary-offset. - (progn (skip-chars-backward " \t") - (if (bolp) 0 cperl-brace-imaginary-offset)) - ;; If the openbrace is preceded by a parenthesized exp, - ;; move to the beginning of that; - ;; possibly a different line - (progn - (if (eq (preceding-char) ?\)) - (forward-sexp -1)) - ;; Get initial indentation of the line we are on. - ;; If line starts with label, calculate label indentation - (if (save-excursion - (beginning-of-line) - (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) - (if (> (current-indentation) cperl-min-label-indent) - (- (current-indentation) cperl-label-offset) - (cperl-calculate-indent)) - (current-indentation)))))))) - res))) +;; (defvar cperl-indent-alist +;; '((string nil) +;; (comment nil) +;; (toplevel 0) +;; (toplevel-after-parenth 2) +;; (toplevel-continued 2) +;; (expression 1)) +;; "Alist of indentation rules for CPerl mode. +;; The values mean: +;; nil: do not indent; +;; number: add this amount of indentation. + +;; Not finished, not used.") + +;; (defun cperl-where-am-i (&optional parse-start start-state) +;; ;; Unfinished +;; "Return a list of lists ((TYPE POS)...) of good points before the point. +;; ;; POS may be nil if it is hard to find, say, when TYPE is `string' or `comment'. + +;; ;; Not finished, not used." +;; (save-excursion +;; (let* ((start-point (point)) +;; (s-s (cperl-get-state)) +;; (start (nth 0 s-s)) +;; (state (nth 1 s-s)) +;; (prestart (nth 3 s-s)) +;; (containing-sexp (car (cdr state))) +;; (case-fold-search nil) +;; (res (list (list 'parse-start start) (list 'parse-prestart prestart)))) +;; (cond ((nth 3 state) ; In string +;; (setq res (cons (list 'string nil (nth 3 state)) res))) ; What started string +;; ((nth 4 state) ; In comment +;; (setq res (cons '(comment) res))) +;; ((null containing-sexp) +;; ;; Line is at top level. +;; ;; Indent like the previous top level line +;; ;; unless that ends in a closeparen without semicolon, +;; ;; in which case this line is the first argument decl. +;; (cperl-backward-to-noncomment (or parse-start (point-min))) +;; ;;(skip-chars-backward " \t\f\n") +;; (cond +;; ((or (bobp) +;; (memq (preceding-char) (append ";}" nil))) +;; (setq res (cons (list 'toplevel start) res))) +;; ((eq (preceding-char) ?\) ) +;; (setq res (cons (list 'toplevel-after-parenth start) res))) +;; (t +;; (setq res (cons (list 'toplevel-continued start) res))))) +;; ((/= (char-after containing-sexp) ?{) +;; ;; line is expression, not statement: +;; ;; indent to just after the surrounding open. +;; ;; skip blanks if we do not close the expression. +;; (setq res (cons (list 'expression-blanks +;; (progn +;; (goto-char (1+ containing-sexp)) +;; (or (looking-at "[ \t]*\\(#\\|$\\)") +;; (skip-chars-forward " \t")) +;; (point))) +;; (cons (list 'expression containing-sexp) res)))) +;; ((progn +;; ;; Containing-expr starts with \{. Check whether it is a hash. +;; (goto-char containing-sexp) +;; (not (cperl-block-p))) +;; (setq res (cons (list 'expression-blanks +;; (progn +;; (goto-char (1+ containing-sexp)) +;; (or (looking-at "[ \t]*\\(#\\|$\\)") +;; (skip-chars-forward " \t")) +;; (point))) +;; (cons (list 'expression containing-sexp) res)))) +;; (t +;; ;; Statement level. +;; (setq res (cons (list 'in-block containing-sexp) res)) +;; ;; Is it a continuation or a new statement? +;; ;; Find previous non-comment character. +;; (cperl-backward-to-noncomment containing-sexp) +;; ;; Back up over label lines, since they don't +;; ;; affect whether our line is a continuation. +;; ;; Back up comma-delimited lines too ????? +;; (while (or (eq (preceding-char) ?\,) +;; (save-excursion (cperl-after-label))) +;; (if (eq (preceding-char) ?\,) +;; ;; Will go to beginning of line, essentially +;; ;; Will ignore embedded sexpr XXXX. +;; (cperl-backward-to-start-of-continued-exp containing-sexp)) +;; (beginning-of-line) +;; (cperl-backward-to-noncomment containing-sexp)) +;; ;; Now we get the answer. +;; (if (not (memq (preceding-char) (append ";}{" '(nil)))) ; Was ?\, +;; ;; This line is continuation of preceding line's statement. +;; (list (list 'statement-continued containing-sexp)) +;; ;; This line starts a new statement. +;; ;; Position following last unclosed open. +;; (goto-char containing-sexp) +;; ;; Is line first statement after an open-brace? +;; (or +;; ;; If no, find that first statement and indent like +;; ;; it. If the first statement begins with label, do +;; ;; not believe when the indentation of the label is too +;; ;; small. +;; (save-excursion +;; (forward-char 1) +;; (let ((colon-line-end 0)) +;; (while (progn (skip-chars-forward " \t\n" start-point) +;; (and (< (point) start-point) +;; (looking-at +;; "#\\|[a-zA-Z_][a-zA-Z0-9_]*:[^:]"))) +;; ;; Skip over comments and labels following openbrace. +;; (cond ((= (following-char) ?\#) +;; ;;(forward-line 1) +;; (end-of-line)) +;; ;; label: +;; (t +;; (save-excursion (end-of-line) +;; (setq colon-line-end (point))) +;; (search-forward ":")))) +;; ;; Now at the point, after label, or at start +;; ;; of first statement in the block. +;; (and (< (point) start-point) +;; (if (> colon-line-end (point)) +;; ;; Before statement after label +;; (if (> (current-indentation) +;; cperl-min-label-indent) +;; (list (list 'label-in-block (point))) +;; ;; Do not believe: `max' is involved +;; (list +;; (list 'label-in-block-min-indent (point)))) +;; ;; Before statement +;; (list 'statement-in-block (point)))))) +;; ;; If no previous statement, +;; ;; indent it relative to line brace is on. +;; ;; For open brace in column zero, don't let statement +;; ;; start there too. If cperl-indent-level is zero, +;; ;; use cperl-brace-offset + cperl-continued-statement-offset instead. +;; ;; For open-braces not the first thing in a line, +;; ;; add in cperl-brace-imaginary-offset. + +;; ;; If first thing on a line: ????? +;; (+ (if (and (bolp) (zerop cperl-indent-level)) +;; (+ cperl-brace-offset cperl-continued-statement-offset) +;; cperl-indent-level) +;; ;; Move back over whitespace before the openbrace. +;; ;; If openbrace is not first nonwhite thing on the line, +;; ;; add the cperl-brace-imaginary-offset. +;; (progn (skip-chars-backward " \t") +;; (if (bolp) 0 cperl-brace-imaginary-offset)) +;; ;; If the openbrace is preceded by a parenthesized exp, +;; ;; move to the beginning of that; +;; ;; possibly a different line +;; (progn +;; (if (eq (preceding-char) ?\)) +;; (forward-sexp -1)) +;; ;; Get initial indentation of the line we are on. +;; ;; If line starts with label, calculate label indentation +;; (if (save-excursion +;; (beginning-of-line) +;; (looking-at "[ \t]*[a-zA-Z_][a-zA-Z_0-9]*:[^:]")) +;; (if (> (current-indentation) cperl-min-label-indent) +;; (- (current-indentation) cperl-label-offset) +;; (cperl-calculate-indent)) +;; (current-indentation)))))))) +;; res))) (defun cperl-calculate-indent-within-comment () "Return the indentation amount for line, assuming that