[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: line-line-move-visual: was line motion problem
From: |
Chong Yidong |
Subject: |
Re: line-line-move-visual: was line motion problem |
Date: |
Fri, 18 Jul 2008 12:08:30 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Miles Bader <address@hidden> writes:
> Chong Yidong <address@hidden> writes:
>> Since no one has commented, I've gone ahead and checked in
>> visual-line-mode into CVS. Problem reports would be welcome.
>
> Seems to work pretty well...
>
> C-k acts a bit strangely, I think because it doesn't delete the
> whitespace at the end of the killed "line"; the result is that the
> cursor always ends up on the end of the previous "line" after using it.
>
> Also, what about dealing with fringe continuation glyphs? I understand
> that some people want them, even in visual-line-mode, but I think many
> won't want them, so it would be good if there were an easy setting that
> would cause visual-line-mode suppress them.
The following simple patch implements a new variable,
`word-wrap-disable-fringe-indicators', that hides the continuation
indicators when word-wrap is on. (The variable name is a little long
but I can't think of anything else.)
WDYT?
*** trunk/src/fringe.c.~1.53.~ 2008-07-15 14:47:33.000000000 -0400
--- trunk/src/fringe.c 2008-07-18 12:03:55.000000000 -0400
***************
*** 39,44 ****
--- 39,48 ----
Lisp_Object Voverflow_newline_into_fringe;
+ /* Non-nil means suppress continuation glyphs for word-wrap. */
+
+ Lisp_Object Vword_wrap_disable_fringe_indicators;
+
/* List of known fringe bitmap symbols.
The fringe bitmap number is stored in the `fringe' property on
***************
*** 958,963 ****
--- 962,968 ----
Lisp_Object ind = Qnil;
#define MAX_BITMAP_CACHE (8*4)
int bitmap_cache[MAX_BITMAP_CACHE];
+ int show_left_continuation, show_right_continuation;
if (w->pseudo_window_p)
return 0;
***************
*** 1058,1063 ****
--- 1063,1076 ----
: (bitmap_cache[cache*4+2+partial_p] = \
get_logical_fringe_bitmap (w, which, 1, partial_p)))
+ show_left_continuation
+ = (NILP (XBUFFER (w->buffer)->word_wrap)
+ || NILP (Vword_wrap_disable_fringe_indicators)
+ || EQ (Vword_wrap_disable_fringe_indicators, Qright));
+ show_right_continuation
+ = (NILP (XBUFFER (w->buffer)->word_wrap)
+ || NILP (Vword_wrap_disable_fringe_indicators)
+ || EQ (Vword_wrap_disable_fringe_indicators, Qleft));
for (y = 0, rn = 0;
y < yb && rn < nrows;
***************
*** 1089,1095 ****
: LEFT_FRINGE (2, Qtop, 0));
else if (row->indicate_eob_p && EQ (boundary_bot, Qleft))
left = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p);
! else if (MATRIX_ROW_CONTINUATION_LINE_P (row))
left = LEFT_FRINGE (4, Qcontinuation, 0);
else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft))
left = LEFT_FRINGE (5, Qempty_line, 0);
--- 1102,1109 ----
: LEFT_FRINGE (2, Qtop, 0));
else if (row->indicate_eob_p && EQ (boundary_bot, Qleft))
left = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p);
! else if (MATRIX_ROW_CONTINUATION_LINE_P (row)
! && show_left_continuation)
left = LEFT_FRINGE (4, Qcontinuation, 0);
else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft))
left = LEFT_FRINGE (5, Qempty_line, 0);
***************
*** 1116,1122 ****
: RIGHT_FRINGE (2, Qtop, 0));
else if (row->indicate_eob_p && EQ (boundary_bot, Qright))
right = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p);
! else if (row->continued_p)
right = RIGHT_FRINGE (4, Qcontinuation, 0);
else if (row->indicate_top_line_p && EQ (arrow_top, Qright))
right = RIGHT_FRINGE (6, Qup, 0);
--- 1130,1137 ----
: RIGHT_FRINGE (2, Qtop, 0));
else if (row->indicate_eob_p && EQ (boundary_bot, Qright))
right = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p);
! else if (row->continued_p
! && show_right_continuation)
right = RIGHT_FRINGE (4, Qcontinuation, 0);
else if (row->indicate_top_line_p && EQ (arrow_top, Qright))
right = RIGHT_FRINGE (6, Qup, 0);
***************
*** 1649,1654 ****
--- 1664,1681 ----
If nil, also continue lines which are exactly as wide as the window. */);
Voverflow_newline_into_fringe = Qt;
+ DEFVAR_LISP ("word-wrap-disable-fringe-indicators",
+ &Vword_wrap_disable_fringe_indicators,
+ doc: /* *If non-nil, suppress fringe indicators when word-wrap is on.
+ This variable takes effect only if `word-wrap' is non-nil.
+ If its value is nil, the usual fringe indicators associated with
+ continuation lines are displayed for wrapped lines.
+ If its value is `left', the left fringe indicator is not displayed.
+ If its value is `right', the right fringe indicator is not displayed.
+ Any other non-nil value means neither fringe indicator is displayed.
+ This variable does not affect other types of fringe indicators. */);
+ Vword_wrap_disable_fringe_indicators = Qt;
+
DEFVAR_LISP ("fringe-bitmaps", &Vfringe_bitmaps,
doc: /* List of fringe bitmap symbols. */);
Vfringe_bitmaps = Qnil;
- Re: line-line-move-visual: was line motion problem, (continued)
- Message not available
- Re: line-line-move-visual: was line motion problem, Vinicius Jose Latorre, 2008/07/25
- RE: line-line-move-visual: was line motion problem, Drew Adams, 2008/07/25
- Re: line-line-move-visual: was line motion problem, Vinicius Jose Latorre, 2008/07/25
- RE: line-line-move-visual: was line motion problem, Drew Adams, 2008/07/25
- Re: line-line-move-visual: was line motion problem, Vinicius Jose Latorre, 2008/07/26
- Re: line-line-move-visual: was line motion problem, David Reitter, 2008/07/26
- Re: line-line-move-visual: was line motion problem, Vinicius Jose Latorre, 2008/07/26
- Re: line-line-move-visual: was line motion problem, T. V. Raman, 2008/07/25
- Re: line-line-move-visual: was line motion problem, David Reitter, 2008/07/18
- Re: line-line-move-visual: was line motion problem, Jason Rumney, 2008/07/18
- Re: line-line-move-visual: was line motion problem,
Chong Yidong <=
- Re: line-line-move-visual: was line motion problem, Stefan Monnier, 2008/07/18
- Re: line-line-move-visual: was line motion problem, Chong Yidong, 2008/07/19
- Re: line-line-move-visual: was line motion problem, Miles Bader, 2008/07/20
- Re: line-line-move-visual: was line motion problem, Chong Yidong, 2008/07/21
- Re: line-line-move-visual: was line motion problem, Chong Yidong, 2008/07/20
- Re: line-line-move-visual: was line motion problem, Juri Linkov, 2008/07/28
- Re: line-line-move-visual: was line motion problem, Miles Bader, 2008/07/28
- Re: line-line-move-visual: was line motion problem, Juri Linkov, 2008/07/28
- Re: line-line-move-visual: was line motion problem, Chong Yidong, 2008/07/28
- Re: line-line-move-visual: was line motion problem, T. V. Raman, 2008/07/25