unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Font-lock seemingly interacting with insertion
@ 2018-03-21  5:28 Marcin Borkowski
  2018-03-21  6:54 ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Marcin Borkowski @ 2018-03-21  5:28 UTC (permalink / raw)
  To: Help Gnu Emacs mailing list

Hi all,

I want to insert a string with a part made bold (using
`add-face-text-property').  In certain buffers (e.g. in Fundamental
mode) this works, but in some other ones (e.g. in Org-mode or
message-mode) it does not.  After turning font-lock off, it works back
again.  This means that font-lock kicks in right after inserting and
disables my boldface.

Is there a way to make it not happen, without turning font lock off?

I understand that my description is slightly vague, but I suspect that
knowledgeable people might know the answer right away.  If not, I can
provide code to show exactly what I am talking about.

TIA,

--
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21  5:28 Font-lock seemingly interacting with insertion Marcin Borkowski
@ 2018-03-21  6:54 ` Eli Zaretskii
  2018-03-21  7:24   ` Marcin Borkowski
  2018-03-21 14:11   ` Michael Heerdegen
  0 siblings, 2 replies; 14+ messages in thread
From: Eli Zaretskii @ 2018-03-21  6:54 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Marcin Borkowski <mbork@mbork.pl>
> Date: Wed, 21 Mar 2018 06:28:36 +0100
> 
> I want to insert a string with a part made bold (using
> `add-face-text-property').  In certain buffers (e.g. in Fundamental
> mode) this works, but in some other ones (e.g. in Org-mode or
> message-mode) it does not.  After turning font-lock off, it works back
> again.  This means that font-lock kicks in right after inserting and
> disables my boldface.

Yes.

> Is there a way to make it not happen, without turning font lock off?

Not really.  You can turn off JIT font-lock, but then you will have to
refontify manually, and I suspect that this would, for you, mean
"turning off font-lock".

Bottom line: in buffers with font-lock turned on, font-lock has
absolute control of the faces.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21  6:54 ` Eli Zaretskii
@ 2018-03-21  7:24   ` Marcin Borkowski
  2018-03-21  7:47     ` Eli Zaretskii
  2018-03-21 14:11   ` Michael Heerdegen
  1 sibling, 1 reply; 14+ messages in thread
From: Marcin Borkowski @ 2018-03-21  7:24 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs


On 2018-03-21, at 07:54, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Date: Wed, 21 Mar 2018 06:28:36 +0100
>> 
>> I want to insert a string with a part made bold (using
>> `add-face-text-property').  In certain buffers (e.g. in Fundamental
>> mode) this works, but in some other ones (e.g. in Org-mode or
>> message-mode) it does not.  After turning font-lock off, it works back
>> again.  This means that font-lock kicks in right after inserting and
>> disables my boldface.
>
> Yes.
>
>> Is there a way to make it not happen, without turning font lock off?
>
> Not really.  You can turn off JIT font-lock, but then you will have to
> refontify manually, and I suspect that this would, for you, mean
> "turning off font-lock".
>
> Bottom line: in buffers with font-lock turned on, font-lock has
> absolute control of the faces.

Thanks.  This means that instead of inserting stuff with added faces,
I need either to modify font lock keywords or use overlays.

Best,

-- 
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21  7:24   ` Marcin Borkowski
@ 2018-03-21  7:47     ` Eli Zaretskii
  2018-03-21  9:05       ` Marcin Borkowski
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2018-03-21  7:47 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Marcin Borkowski <mbork@mbork.pl>
> Cc: help-gnu-emacs@gnu.org
> Date: Wed, 21 Mar 2018 08:24:31 +0100
> 
> This means that instead of inserting stuff with added faces, I need
> either to modify font lock keywords or use overlays.

You could use hi-lock-mode instead.  It plays well with font-lock.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21  7:47     ` Eli Zaretskii
@ 2018-03-21  9:05       ` Marcin Borkowski
  0 siblings, 0 replies; 14+ messages in thread
From: Marcin Borkowski @ 2018-03-21  9:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs


On 2018-03-21, at 08:47, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Marcin Borkowski <mbork@mbork.pl>
>> Cc: help-gnu-emacs@gnu.org
>> Date: Wed, 21 Mar 2018 08:24:31 +0100
>> 
>> This means that instead of inserting stuff with added faces, I need
>> either to modify font lock keywords or use overlays.
>
> You could use hi-lock-mode instead.  It plays well with font-lock.

Thanks.  It might be a good idea, but you know, when I have a problem,
and I decide to use regexen...  But I'll think about it.  Thanks again!

Best,

-- 
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21  6:54 ` Eli Zaretskii
  2018-03-21  7:24   ` Marcin Borkowski
@ 2018-03-21 14:11   ` Michael Heerdegen
  2018-03-21 15:24     ` Eli Zaretskii
  1 sibling, 1 reply; 14+ messages in thread
From: Michael Heerdegen @ 2018-03-21 14:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii <eliz@gnu.org> writes:

> > I want to insert a string with a part made bold (using
> > `add-face-text-property').  In certain buffers (e.g. in Fundamental
> > mode) this works, but in some other ones (e.g. in Org-mode or
> > message-mode) it does not.  After turning font-lock off, it works back
> > again.  This means that font-lock kicks in right after inserting and
> > disables my boldface.
>
> Yes.
>
> > Is there a way to make it not happen, without turning font lock off?
>
> Not really.  You can turn off JIT font-lock, but then you will have to
> refontify manually, and I suspect that this would, for you, mean
> "turning off font-lock".

I thought the text property "font-lock-face" was exactly for such
cases.  Isn't it appropriate in this case?


Michael.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21 14:11   ` Michael Heerdegen
@ 2018-03-21 15:24     ` Eli Zaretskii
  2018-03-21 15:38       ` Michael Heerdegen
  2018-03-25 16:55       ` Marcin Borkowski
  0 siblings, 2 replies; 14+ messages in thread
From: Eli Zaretskii @ 2018-03-21 15:24 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Michael Heerdegen <michael_heerdegen@web.de>
> Cc: help-gnu-emacs@gnu.org
> Date: Wed, 21 Mar 2018 15:11:49 +0100
> 
> I thought the text property "font-lock-face" was exactly for such
> cases.  Isn't it appropriate in this case?

That's a possibility, but it will only work in modes/buffers that turn
on font-lock.  AFAIU, that was not OP's intent.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21 15:24     ` Eli Zaretskii
@ 2018-03-21 15:38       ` Michael Heerdegen
  2018-03-21 16:22         ` Eli Zaretskii
  2018-03-22  0:39         ` Drew Adams
  2018-03-25 16:55       ` Marcin Borkowski
  1 sibling, 2 replies; 14+ messages in thread
From: Michael Heerdegen @ 2018-03-21 15:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs

Eli Zaretskii <eliz@gnu.org> writes:

> That's a possibility, but it will only work in modes/buffers that turn
> on font-lock.  AFAIU, that was not OP's intent.

I wasn't sure about the actual use case.

If it should work for both font-lock on and off, would it make sense to
add both a face and a font-lock-face property to the string to be
inserted?


Michael.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21 15:38       ` Michael Heerdegen
@ 2018-03-21 16:22         ` Eli Zaretskii
  2018-03-22  0:39         ` Drew Adams
  1 sibling, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2018-03-21 16:22 UTC (permalink / raw)
  To: help-gnu-emacs

> From: Michael Heerdegen <michael_heerdegen@web.de>
> Cc: help-gnu-emacs@gnu.org
> Date: Wed, 21 Mar 2018 16:38:28 +0100
> 
> If it should work for both font-lock on and off, would it make sense to
> add both a face and a font-lock-face property to the string to be
> inserted?

Could be.



^ permalink raw reply	[flat|nested] 14+ messages in thread

* RE: Font-lock seemingly interacting with insertion
  2018-03-21 15:38       ` Michael Heerdegen
  2018-03-21 16:22         ` Eli Zaretskii
@ 2018-03-22  0:39         ` Drew Adams
  2018-03-22  6:53           ` Eli Zaretskii
                             ` (2 more replies)
  1 sibling, 3 replies; 14+ messages in thread
From: Drew Adams @ 2018-03-22  0:39 UTC (permalink / raw)
  To: Michael Heerdegen, Eli Zaretskii; +Cc: help-gnu-emacs

> > That's a possibility, but it will only work in modes/buffers that turn
> > on font-lock.  AFAIU, that was not OP's intent.
> 
> I wasn't sure about the actual use case.
> 
> If it should work for both font-lock on and off, would it make sense to
> add both a face and a font-lock-face property to the string to be
> inserted?

I haven't followed this, so the use case is not clear to me.

But if the OP wants highlighting that will be present whether
font-locking is on or off then font-lock is not the answer (!),
including its use of `font-lock-face'.

That text property just gives font-lock more control, not less.
And `hi-lock.el' just uses font-lock to do its job, so it too
is no escape from control by font-lock-mode.

If you want highlighting that is independent of font-lock then
you might give library `highlight.el' a try.  It lets you
highlight using text properties or overlay properties, and the
highlighting can be independent of font-lock (or not - au choix).

If you want to be able to tell font-lock "hands off", i.e., to
ignore particular text, you can alternatively use text property
`font-lock-ignore'.  For that, see library `font-lock+.el'.

See:
https://www.emacswiki.org/emacs/HighlightLibrary

See also this Emacs Dev discussion:
http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00540.html

http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00583.html



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-22  0:39         ` Drew Adams
@ 2018-03-22  6:53           ` Eli Zaretskii
  2018-03-25 17:00           ` Marcin Borkowski
       [not found]           ` <mailman.11214.1521997256.27995.help-gnu-emacs@gnu.org>
  2 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2018-03-22  6:53 UTC (permalink / raw)
  To: help-gnu-emacs

> Date: Wed, 21 Mar 2018 17:39:12 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: help-gnu-emacs@gnu.org
> 
> And `hi-lock.el' just uses font-lock to do its job, so it too
> is no escape from control by font-lock-mode.

That's not true.  From the doc string of hi-lock-mode:

  In buffers where Font Lock mode is enabled, patterns are
  highlighted using font lock.  In buffers where Font Lock mode is
  disabled, patterns are applied using overlays



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-21 15:24     ` Eli Zaretskii
  2018-03-21 15:38       ` Michael Heerdegen
@ 2018-03-25 16:55       ` Marcin Borkowski
  1 sibling, 0 replies; 14+ messages in thread
From: Marcin Borkowski @ 2018-03-25 16:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: help-gnu-emacs


On 2018-03-21, at 16:24, Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Michael Heerdegen <michael_heerdegen@web.de>
>> Cc: help-gnu-emacs@gnu.org
>> Date: Wed, 21 Mar 2018 15:11:49 +0100
>> 
>> I thought the text property "font-lock-face" was exactly for such
>> cases.  Isn't it appropriate in this case?
>
> That's a possibility, but it will only work in modes/buffers that turn
> on font-lock.  AFAIU, that was not OP's intent.

I was quite vague, but indeed that was my intent.  However,
font-lock-face generated further problems.  I'll report back when
I solve the problem (I know how to do it, I just need more time).

Thanks,

-- 
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
  2018-03-22  0:39         ` Drew Adams
  2018-03-22  6:53           ` Eli Zaretskii
@ 2018-03-25 17:00           ` Marcin Borkowski
       [not found]           ` <mailman.11214.1521997256.27995.help-gnu-emacs@gnu.org>
  2 siblings, 0 replies; 14+ messages in thread
From: Marcin Borkowski @ 2018-03-25 17:00 UTC (permalink / raw)
  To: Drew Adams; +Cc: Michael Heerdegen, help-gnu-emacs


On 2018-03-22, at 01:39, Drew Adams <drew.adams@oracle.com> wrote:

>> > That's a possibility, but it will only work in modes/buffers that turn
>> > on font-lock.  AFAIU, that was not OP's intent.
>> 
>> I wasn't sure about the actual use case.
>> 
>> If it should work for both font-lock on and off, would it make sense to
>> add both a face and a font-lock-face property to the string to be
>> inserted?
>
> I haven't followed this, so the use case is not clear to me.
>
> But if the OP wants highlighting that will be present whether
> font-locking is on or off then font-lock is not the answer (!),
> including its use of `font-lock-face'.

font-lock-face won't work, but for different reasons.  As I mentioned in
my previous message, I'll report back (in fact, I'll blog about it some
day) when the issue is solved.  Most probably, I will have to use
overlays.

> If you want highlighting that is independent of font-lock then
> you might give library `highlight.el' a try.  It lets you
> highlight using text properties or overlay properties, and the
> highlighting can be independent of font-lock (or not - au choix).

That is interesting - I even have that library because of
`hlt-highlight-region' - but in this case I don't want any
dependencies.  But thanks anyway!

> If you want to be able to tell font-lock "hands off", i.e., to
> ignore particular text, you can alternatively use text property
> `font-lock-ignore'.  For that, see library `font-lock+.el'.

Interesting, but again - external library.

Thanks,

-- 
Marcin Borkowski
http://mbork.pl



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Font-lock seemingly interacting with insertion
       [not found]           ` <mailman.11214.1521997256.27995.help-gnu-emacs@gnu.org>
@ 2018-05-15  8:04             ` andlind
  0 siblings, 0 replies; 14+ messages in thread
From: andlind @ 2018-05-15  8:04 UTC (permalink / raw)
  To: help-gnu-emacs

Hi!

You could add your own custom property to `char-property-alias-alist'. This will work regardless if font-lock is active or not. This is how font-lock implements `font-lock-face', so you might find that it has the same drawbacks as `font-lock-face'.

One drawback that I can see is that some packages that convert buffers with syntax highlighting to other formats might not take this into account.

    -- Anders

On Sunday, 25 March 2018 19:00:59 UTC+2, Marcin Borkowski  wrote:
> On 2018-03-22, at 01:39, Drew Adams <drew.adams@oracle.com> wrote:
> 
> >> > That's a possibility, but it will only work in modes/buffers that turn
> >> > on font-lock.  AFAIU, that was not OP's intent.
> >> 
> >> I wasn't sure about the actual use case.
> >> 
> >> If it should work for both font-lock on and off, would it make sense to
> >> add both a face and a font-lock-face property to the string to be
> >> inserted?
> >
> > I haven't followed this, so the use case is not clear to me.
> >
> > But if the OP wants highlighting that will be present whether
> > font-locking is on or off then font-lock is not the answer (!),
> > including its use of `font-lock-face'.
> 
> font-lock-face won't work, but for different reasons.  As I mentioned in
> my previous message, I'll report back (in fact, I'll blog about it some
> day) when the issue is solved.  Most probably, I will have to use
> overlays.
> 
> > If you want highlighting that is independent of font-lock then
> > you might give library `highlight.el' a try.  It lets you
> > highlight using text properties or overlay properties, and the
> > highlighting can be independent of font-lock (or not - au choix).
> 
> That is interesting - I even have that library because of
> `hlt-highlight-region' - but in this case I don't want any
> dependencies.  But thanks anyway!
> 
> > If you want to be able to tell font-lock "hands off", i.e., to
> > ignore particular text, you can alternatively use text property
> > `font-lock-ignore'.  For that, see library `font-lock+.el'.
> 
> Interesting, but again - external library.



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-05-15  8:04 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-21  5:28 Font-lock seemingly interacting with insertion Marcin Borkowski
2018-03-21  6:54 ` Eli Zaretskii
2018-03-21  7:24   ` Marcin Borkowski
2018-03-21  7:47     ` Eli Zaretskii
2018-03-21  9:05       ` Marcin Borkowski
2018-03-21 14:11   ` Michael Heerdegen
2018-03-21 15:24     ` Eli Zaretskii
2018-03-21 15:38       ` Michael Heerdegen
2018-03-21 16:22         ` Eli Zaretskii
2018-03-22  0:39         ` Drew Adams
2018-03-22  6:53           ` Eli Zaretskii
2018-03-25 17:00           ` Marcin Borkowski
     [not found]           ` <mailman.11214.1521997256.27995.help-gnu-emacs@gnu.org>
2018-05-15  8:04             ` andlind
2018-03-25 16:55       ` Marcin Borkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).