Re: [PATCH] VIM: Improve moving between messages in a thread

Subject: Re: [PATCH] VIM: Improve moving between messages in a thread

Date: Fri, 10 Oct 2014 11:21:57 -0700

To: Franz Fellner

Cc: notmuch@notmuchmail.org

From: Ian Main


Franz Fellner wrote:
> Patch works fine for me. It also would be nice to have a "move to next
> unread message" function.
> Most beautiful would be a treeview of the thread structure. Currently
> threads are rendered as plain list, so you can't immediately see and
> jump to the quoted mail. Bower IMHO uses the best approach here. I tried
> emacs treeview but did not really like it (partly because I failed badly
> to implement a solution that shows treeview by default). Indent the
> whole large Message view IMHO also is not a good (at least to me)
> solution.

Yeah I agree.  This is a start anyway.  As I use the vim client more my
plan is to just keep fixing things that get in my way.

Thanks for catching the vim_puts. :)

Thanks for you're reviews!!

    Ian

> On Mon,  6 Oct 2014 10:55:16 -0700, Ian Main <imain@stemwinder.org> wrote:
> > @@ -113,6 +114,22 @@ EOF
> >  	call s:kill_this_buffer()
> >  endfunction
> >  
> > +function! s:show_prev_msg()
> > +ruby << EOF
> > +	r, c = $curwin.cursor
> > +	n = $curbuf.line_number
> > +	i = $messages.index { |m| n >= m.start && n <= m.end }
> > +	m = $messages[i - 1] if i > 0
> 
> This one
> > +	vim_puts ("messages index is #{i} and m is #{m}")
> was missed ;)
> 
> > +	if m
> > +		r = m.body_start + 1
> > +		scrolloff = VIM::evaluate("&scrolloff")
> > +		VIM::command("normal #{m.start + scrolloff}zt")
> > +		$curwin.cursor = r + scrolloff, c
> > +	end
> > +EOF
> > +endfunction
> > +
> >  function! s:show_next_msg()
> >  ruby << EOF
> >  	r, c = $curwin.cursor
> > @@ -121,8 +138,9 @@ ruby << EOF
> >  	m = $messages[i + 1]
> >  	if m
> >  		r = m.body_start + 1
> > -		VIM::command("normal #{m.start}zt")
> > -		$curwin.cursor = r, c
> > +		scrolloff = VIM::evaluate("&scrolloff")
> > +		VIM::command("normal #{m.start + scrolloff}zt")
> > +		$curwin.cursor = r + scrolloff, c
> >  	end
> >  EOF
> >  endfunction
> > -- 
> > 1.9.3
> > 
> > _______________________________________________
> > notmuch mailing list
> > notmuch@notmuchmail.org
> > http://notmuchmail.org/mailman/listinfo/notmuch
> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch



Thread: