Actually, after continuing to futz with this stuff, I seem to have figured
out a solution to the problem. I was a little suspicious of how the
jde-mode init method sets up the font-lock-defaults variable _after_ the
java-mode has fully initialized. Indeed, I added a simple hook to java-mode
to set the font-lock-defaults in that mode before jde-mode initializes, and
that seems to consistently initialize my font-lock-keywords correctly. This
is the code I added to my startup files:
(add-hook 'java-mode-hook
'(lambda ()
(set (make-local-variable 'font-lock-defaults)
jde-java-font-lock-defaults)))
-----Original Message-----
From: Paul Landes [mailto:[email protected]]
Sent: Wednesday, May 04, 2011 10:55 PM
To: [email protected][email protected]
Cc: 'Jason McBrayer'; [email protected]
Subject: Re: [jdee-users] erratic font-lock behavior (emacs 23)
What are the values of font-lock-keywords before and after the buffer
fortification error?
Anything interesting in *Messages*?
On May 3, 2011, at 10:31 PM, <[email protected]>
<[email protected] > wrote:
> There is no exception. This is my original email:
>
> Hey,
> Just wondering if anyone else has experienced erratic font-lock
> behavior.
> When I run jdee in emacs 23 (and the trunk of jde), the font-lock-
> keywords
> seems to bounce back and forth between 2 different sets of values.
> When I
> first open up a java file, I'll get a certain font-lock behavior.
> If I
> refresh the buffer, often times (not always), I'll get different
> font-lock behavior. When I dump the value of the font-lock-keywords,
> I actually see 2
> different values between the first buffer load and the refresh.
> After the
> first refresh, the font locking seems to settle down, but not always
> to the "correct" values. I don't know if this has something to do
> with my own setup or what, so I was wondering if anyone else saw
> similar behavior. To me, the effects are most noticeable in the
> import statements, as the package names are fontified in
> font-lock-constant face sometimes (incorrect), and
> jde-java-font-lock-package face other times (the "correct" face).
> Thanks,
> -james
>
> -----Original Message-----
> From: Paul Landes [mailto:[email protected]]
> Sent: Tuesday, May 03, 2011 10:46 PM
> To: [email protected][email protected]
> Cc: 'Jason McBrayer'; [email protected]
> Subject: Re: [jdee-users] erratic font-lock behavior (emacs 23)
>
> Sorry, I for some reason don't have the original and am extrapolating
> on what you wrote.
>
> Eval this:
>
> (setq stack-trace-on-signal t
> stack-trace-on-error t)
>
> and make the exception happen again. You should get a stack trace.
>
> Here's my font-lock-keywords (take it if it is helpful):
>
> (t
> (("[ ]\\([+-][^ \n]+\\)" 1 font-lock-comment-face)
> ("^[^ \n]+:.*" . font-lock-string-face)
> ("^\\[[1-9][0-9]*\\]" . font-lock-string-face))
> ("[ ]\\([+-][^ \n]+\\)"
> (1 font-lock-comment-face))
> ("^[^ \n]+:.*"
> (0 font-lock-string-face))
> ("^\\[[1-9][0-9]*\\]"
> (0 font-lock-string-face)))
>
>
>
> On May 3, 2011, at 9:09 PM, <[email protected]>
> <[email protected] > wrote:
>
>> Maybe I'm not making myself clear. The problem isn't that my faces
>> have the wrong color, the problem is that the wrong faces are applied
>> (due, presumably, to the different values of font-lock-keywords).
>> your configuration below is just face configuration, so I'm not sure
>> how that will help anything. What kind of stack trace are you
>> looking for?
>> You want
>> me to send the 2 different values of font-lock-keywords?
>>
>> -----Original Message-----
>> From: Paul Landes [mailto:[email protected]]
>> Sent: Tuesday, May 03, 2011 8:30 PM
>> To: [email protected][email protected]
>> Cc: 'Jason McBrayer'; [email protected]
>> Subject: Re: [jdee-users] erratic font-lock behavior (emacs 23)
>>
>> I've looked around and don't see anything. You're the first to
>> report this problem.
>>
>> Here's what I have in my custom elisp file. Try it and maybe it will
>> fix something. Otherwise, I don't really have much to go on. Maybe
>> you could forward a full stack trace.
>>
>> '(compilation-mode-hook (quote (turn-on-font-lock)))
>> '(global-font-lock-mode t nil (font-lock)) '(font-lock-builtin-face
>> ((((class color) (background light)) (:foreground "dark violet"))))
>> '(font-lock-comment-face ((t (:foreground "#b00000"))))
>> '(font-lock-constant-face ((((class color) (background light))
>> (:foreground "CadetBlue")))) '(font-lock-doc-face ((t (:foreground
>> "steel blue")))) '(font-lock-function-name-face ((t (:foreground
>> "blue3")))) '(font-lock-keyword-face ((t (:foreground
>> "DarkOrange4")))) '(font-lock-string-face ((t (:foreground "forest
>> green")))) '(font-lock-type-face ((t (:foreground "#ca3278"))))
>> '(font-lock-variable-name-face ((t (:foreground "darkcyan"))))
>> '(font-lock-warning-face ((t (:foreground "red" :weight bold))))
>> '(jde-java-font-lock-bold-face ((t (:foreground "#666666" :weight
>> bold))))
>> '(jde-java-font-lock-code-face ((t (:foreground "#993300"))))
>> '(jde-java-font-lock-javadoc-face ((t (:foreground "#a00020"))))
>> '(jde-java-font-lock-modifier-face ((((class color) (background
>> light)) (:foreground "#0033FF"))))
>> '(jde-java-font-lock-package-face ((((class color) (background
>> light)) (:foreground "#6600CC"))))
>> '(jde-java-font-lock-private-face ((((class color) (background
>> light)) (:foreground "forest green"))))
>> '(jde-java-font-lock-protected-face ((((class color) (background
>> light)) (:foreground "purple"))))
>> '(jde-java-font-lock-public-face ((((class color) (background
>> light)) (:foreground "red"))))
>>
>>
>> On May 1, 2011, at 10:04 PM, <[email protected]>
>> <[email protected] > wrote:
>>
>>> I haven't noticed the problem in any other modes, although I'm not
>>> opening many large files these days which aren't java files. When
>>> I've been testing this behavior, I've observed it both with the
>>> beanshell running and not running.
>>>
>>> -----Original Message-----
>>> From: Paul Landes [mailto:[email protected]]
>>> Sent: Saturday, April 30, 2011 3:33 PM
>>> To: [email protected][email protected]
>>> Cc: 'Jason McBrayer'; [email protected]
>>> Subject: Re: [jdee-users] erratic font-lock behavior (emacs 23)
>>>
>>> Does this happen in other modes? It sounds like an issue more
>>> related to font-lock.
>>>
>>> Do you have beanshell running while this is happening? If so, kill
>>> the *JDEE bsh* buffer.
>>>
>>>
>>> On Apr 27, 2011, at 10:48 AM, <[email protected]>
>>> <[email protected]
>>>> wrote:
>>>
>>>> A little more futzing led me to another interesting observation: it
>>>> seems to be related to file size. A quick test on a few different
>>>> files only showed the coloring issues on files over ~700 lines.
>>>> Testing with a big file and a small file, it seems that the
>>>> _initial value for font-lock-keywords depends on the file size_!
>>>> When I load a small file, the font-lock-keywords variable get
>>>> init-ed to one value (let's call that value "A") in that buffer and
>>>> the coloring is correct. No amount of reverting of the buffer
>>>> changes the coloring or the value. But, when I open a large file,
>>>> the initial coloring is wrong, and the value of font-lock-keywords
>>>> is _different_ (let's call that value "B"). when I revert the
>>>> large file, then the coloring is correct, and the
>>>> font-lock-keywords is now set to "A"
>>>> (and the coloring seems to stay correct through subsequent buffer
>>>> reverts).
>>>>
>>>> So, anyone have an idea when the font-lock-keywords variable may
>>>> get setup differently (at least initially) depending on buffer
>>>> size?
>>>>
>>>> -----Original Message-----
>>>> From: [email protected] [mailto:[email protected]] On Behalf
>>>> Of Jason McBrayer
>>>> Sent: Wednesday, April 27, 2011 10:07 AM
>>>> To: [email protected]
>>>> Cc: [email protected]
>>>> Subject: Re: [jdee-users] erratic font-lock behavior (emacs 23)
>>>>
>>>> On Tue, Apr 26, 2011 at 11:12 PM, <[email protected]>
>>>> wrote:
>>>>> I'm not sure I understand what you are asking. I've customized
>>>>> all my faces. The issue isn't the face color, it's that the wrong
>>>>> faces are
>>>> being
>>>>> applied, seemingly due to the fact that the value of font-lock-
>>>>> keyworks changes over the lifetime of the buffer.
>>>>
>>>> Could it be that you are accidentally sometimes in java-mode, and
>>>> sometimes in jde-mode? Could you C-h m and see which mode is
>>>> active when each set of faces is applied? I've tested and seen that
>>>> java- mode and jde-mode do have different sets of faces.
>>>>
>>>> --
>>>> Jason F. McBrayer
>>>> http://jfm.carcosa.net/
>>>>
>>>>
>>>>
>>> --------------------------------------------------------------------
>>> -
>>> -
>>> ------
>>> --
>>>> WhatsUp Gold - Download Free Network Management Software The most
>>>> intuitive, comprehensive, and cost-effective network management
>>>> toolset available today. Delivers lowest initial acquisition cost
>>>> and overall TCO of any competing solution.
>>>> http://p.sf.net/sfu/whatsupgold-sd
>>>> _______________________________________________
>>>> jdee-users mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/jdee-users
>>>
>>>
>>
>>
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
jdee-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jdee-users