emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lisp-outline-level.


From: Lute Kamstra
Subject: Re: lisp-outline-level.
Date: Sun, 13 Feb 2005 18:06:38 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

David Kastrup <address@hidden> writes:

> Lute Kamstra <address@hidden> writes:
>
>> In (Emacs) Lisp mode, outline-regexp is ";;;;* [^ \t\n]\\|(" and
>> outline-level is lisp-outline-level:
>>
>> (defun lisp-outline-level ()
>>   "Lisp mode `outline-level' function."
>>   (if (looking-at "(\\|;;;###autoload")
>>       1000
>>     (looking-at outline-regexp)
>>     (- (match-end 0) (match-beginning 0))))
>>
>> This is a bit strange as outline-regexp doesn't match
>> ";;;###autoload".
>
> Why is that strange?  outline-regexp is not even consulted when
> ;###autoload is found, so I don't see how it would come into play
> here.
>
>> Shall I commit the patch below?
>
>> *** lisp/emacs-lisp/lisp-mode.el     1 Feb 2005 15:48:50 -0000       1.171
>> --- lisp/emacs-lisp/lisp-mode.el     13 Feb 2005 11:03:02 -0000
>> ***************
>> *** 212,223 ****
>>   
>>   (defun lisp-outline-level ()
>>     "Lisp mode `outline-level' function."
>> !   (if (looking-at "(\\|;;;###autoload")
>>         1000
>> -     (looking-at outline-regexp)
>>       (- (match-end 0) (match-beginning 0))))
>>   
>> - 
>> --- 212,221 ----
>>   
>>   (defun lisp-outline-level ()
>>     "Lisp mode `outline-level' function."
>> !   (if (eq (following-char) ?\()
>>         1000
>>       (- (match-end 0) (match-beginning 0))))
>
> The patch is completely nonsensical.  It returns rubbish in almost all
> cases since it is the "looking-at" that established match-end and
> match-beginning in the first place.

The variables outline-regexp and outline-level are used by Outline
minor mode.  Did you take a look at their docstrings?  Outline minor
mode searches for matches of outline-regexp and at each match the
function in outline-level is called to determine the nesting level:

,----[ C-h v outline-level RET ]
| outline-level's value is outline-level
| 
| *Function of no args to compute a header's nesting level in an outline.
| It can assume point is at the beginning of a header line and that the match
| data reflects the `outline-regexp'.
| 
| Defined in `outline'.
`----

Does my patch make more sense now?

Lute.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]