[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: `comment-start' is nil
From: |
lee |
Subject: |
Re: `comment-start' is nil |
Date: |
Sat, 15 Mar 2014 21:50:16 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Juanma Barranquero <lekktu@gmail.com> writes:
> On Wed, Mar 12, 2014 at 10:37 PM, lee <lee@yun.yagibdah.de> wrote:
>
>> I´m using desktop-mode to restore the previous session when starting
>> emacs. For some buffers that are restored this way, I´m using a mode
>> I´m working on. This mode employs a function to search for a regex in
>> particular buffers. The regex involves `comment-start'.
>>
>> Unfortunately, at the time the function is running during start-up, the
>> value of `comment-start' is nil.
>>
>>
>> (let ((end-marker (concat "^" comment-start
>> lsl-hi-lock-patterns-end-marker)))
>> (message "comment-start with %s is %s"
>> (buffer-name)
>> comment-start) ...)
>>
>>
>> gives me messages like "comment-start with test-plane.fontify is nil".
>> Calling the same function later works fine because `comment-start' isn´t
>> nil anymore.
>
> We'll need more information. It is a major mode or a minor mode?
(define-derived-mode lsl-mode c++-mode "LSL" ...
I`m not sure if it`s major or minor. The docstring says it`s major, but
I didn`t write that part of it.
> If a minor, which major mode are these buffers?
Hm, I think it`s a major mode; "LSL" shows up first in the mode line.
> How it is your function run during the startup?
Please see https://github.com/Ratany/lsl-repo/tree/master/emacs --- I
just pushed the latest version, it`s work in progress.
`lsl-mode-apply-hi-lock-patterns' (in lsl-mode.el) is called when the
mode is enabled. It uses the variable lsl-hi-lock-patterns-file to
figure out from which file to read highlighting patterns.
lsl-hi-lock-patterns-file should be set from the '-*-' line in the
buffer. By the time the mode is enabled during startup, this variable
is not set.
I have a work-around in place so my code reads the variable from the
'-*-' when it`s not set.
> How does the function get the buffer to run into?
(unless (assoc-default "\\.lsl$" auto-mode-alist)
(add-to-list 'auto-mode-alist '("\\.lsl$" . lsl-mode))))
... in `lsl-mode-auto-enable'.
Desktop-mode seems to play into this in that it apparently remembers the
modes of a buffer and re-enables them when restoring the buffers.
--
Knowledge is volatile and fluid. Software is power.