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

Reply via email to