aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJuanma Barranquero2019-10-06 20:53:18 +0200
committerJuanma Barranquero2019-10-06 20:53:18 +0200
commit8de2e69f021b5b2920a07d82c9869bb394171d41 (patch)
tree34b57d6b999d9ec668044b16627b1d773a24f4e5 /src
parent29db34e3e0cd5be78b7ab4604050c0ba05835414 (diff)
downloademacs-8de2e69f021b5b2920a07d82c9869bb394171d41.tar.gz
emacs-8de2e69f021b5b2920a07d82c9869bb394171d41.zip
Set alternate faces for some line numbers (bug#27734)
* lisp/faces.el (line-number-major-tick, line-number-minor-tick): New faces. * lisp/cus-start.el (display-line-numbers-major-tick) (display-line-numbers-minor-tick): Add customization info. * lisp/frame.el: Add `display-line-numbers-major-tick' and `display-line-numbers-minor-tick' to list of variables which should trigger redisplay of the current buffer. * src/xdisp.c (syms_of_xdisp) <display-line-numbers-major-tick> <display-line-numbers-major-tick>: Defvar new options. (syms_of_xdisp) <line-number-major-tick, line-number-minor-tick>: Defsym new faces. (maybe_produce_line_number): Use new faces for line numbers that are multiple of `display-line-numbers-major-tick' and `display-line-numbers-minor-tick'. * etc/NEWS (value): Announce new feature. * doc/emacs/display.texi (Display Custom): Describe it. Wording by Robert Pluim <rpluim@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 8aa38c8034c..1f3a8136f8b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -22664,6 +22664,14 @@ maybe_produce_line_number (struct it *it)
22664 empty lines beyond EOB. */ 22664 empty lines beyond EOB. */
22665 && it->what != IT_EOB) 22665 && it->what != IT_EOB)
22666 tem_it.face_id = current_lnum_face_id; 22666 tem_it.face_id = current_lnum_face_id;
22667 else if (display_line_numbers_major_tick > 0
22668 && (lnum_to_display % display_line_numbers_major_tick == 0))
22669 tem_it.face_id = merge_faces (it->w, Qline_number_major_tick,
22670 0, DEFAULT_FACE_ID);
22671 else if (display_line_numbers_minor_tick > 0
22672 && (lnum_to_display % display_line_numbers_minor_tick == 0))
22673 tem_it.face_id = merge_faces (it->w, Qline_number_minor_tick,
22674 0, DEFAULT_FACE_ID);
22667 else 22675 else
22668 tem_it.face_id = lnum_face_id; 22676 tem_it.face_id = lnum_face_id;
22669 if (beyond_zv 22677 if (beyond_zv
@@ -34125,6 +34133,8 @@ be let-bound around code that needs to disable messages temporarily. */);
34125 /* Names of the faces used to display line numbers. */ 34133 /* Names of the faces used to display line numbers. */
34126 DEFSYM (Qline_number, "line-number"); 34134 DEFSYM (Qline_number, "line-number");
34127 DEFSYM (Qline_number_current_line, "line-number-current-line"); 34135 DEFSYM (Qline_number_current_line, "line-number-current-line");
34136 DEFSYM (Qline_number_major_tick, "line-number-major-tick");
34137 DEFSYM (Qline_number_minor_tick, "line-number-minor-tick");
34128 /* Name of a text property which disables line-number display. */ 34138 /* Name of a text property which disables line-number display. */
34129 DEFSYM (Qdisplay_line_numbers_disable, "display-line-numbers-disable"); 34139 DEFSYM (Qdisplay_line_numbers_disable, "display-line-numbers-disable");
34130 34140
@@ -34760,6 +34770,20 @@ if the font in fill-column-indicator face does not support Unicode characters.
34760 DEFSYM (Qdisplay_fill_column_indicator_character, "display-fill-column-indicator-character"); 34770 DEFSYM (Qdisplay_fill_column_indicator_character, "display-fill-column-indicator-character");
34761 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_character); 34771 Fmake_variable_buffer_local (Qdisplay_fill_column_indicator_character);
34762 34772
34773 DEFVAR_INT ("display-line-numbers-major-tick", display_line_numbers_major_tick,
34774 doc: /* If an integer N > 0, highlight line number of every Nth line.
34775The line number is shown with the `line-number-major-tick' face.
34776Otherwise, no special highlighting is done every Nth line.
34777Note that major ticks take precedence over minor ticks. */);
34778 display_line_numbers_major_tick = 0;
34779
34780 DEFVAR_INT ("display-line-numbers-minor-tick", display_line_numbers_minor_tick,
34781 doc: /* If an integer N > 0, highlight line number of every Nth line.
34782The line number is shown with the `line-number-minor-tick' face.
34783Otherwise, no special highlighting is done every Nth line.
34784Note that major ticks take precedence over minor ticks. */);
34785 display_line_numbers_minor_tick = 0;
34786
34763 DEFVAR_BOOL ("inhibit-eval-during-redisplay", inhibit_eval_during_redisplay, 34787 DEFVAR_BOOL ("inhibit-eval-during-redisplay", inhibit_eval_during_redisplay,
34764 doc: /* Non-nil means don't eval Lisp during redisplay. */); 34788 doc: /* Non-nil means don't eval Lisp during redisplay. */);
34765 inhibit_eval_during_redisplay = false; 34789 inhibit_eval_during_redisplay = false;