Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 1964D431FAF for ; Mon, 20 Oct 2014 12:38:50 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.799 X-Spam-Level: X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8bgh4p65-rnO for ; Mon, 20 Oct 2014 12:38:46 -0700 (PDT) Received: from mail-la0-f53.google.com (mail-la0-f53.google.com [209.85.215.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id E5B07431FAE for ; Mon, 20 Oct 2014 12:38:45 -0700 (PDT) Received: by mail-la0-f53.google.com with SMTP id gq15so4509572lab.40 for ; Mon, 20 Oct 2014 12:38:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding; bh=EAdjSH6sKg9Em1RgkXMkaeF4N9EK/M3HIywcQGODp3U=; b=hFw7rl2fWtnE2qar1xogBpJbBba/dHOYUWXOzmU31+hVN5ERH/CiRDoMgQz2aBi4UK OTbSDa+9J0DUTNsQLmj6IuKdhVMekJuPWvX/skOASdRIwHxRB4CbWcXJlflpZj+O7NEB N1bV5+GCNxshXwZ7RNOomxruJe+YoFUDf1QQZE71hwaBduzADRvBoPgXg7Hnoqpw6l7f w3RXXLW27iN/UdQnNG/OfPNGNIXG+2+4+lmFWwPnP8iPIFVMB3P7TfnToejZuSGYoLOR B8F/5vgQSsNFFkjtPGMQnqkJ/Xw85uO5zwm/TR8KKEYvN57pLUdBSFI4jt5BbzAQUzn9 kECw== X-Received: by 10.152.88.70 with SMTP id be6mr29904181lab.72.1413833924423; Mon, 20 Oct 2014 12:38:44 -0700 (PDT) Received: from localhost (p5B00FFDE.dip0.t-ipconnect.de. [91.0.255.222]) by mx.google.com with ESMTPSA id u2sm2193280lbw.35.2014.10.20.12.38.42 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 20 Oct 2014 12:38:43 -0700 (PDT) Date: Mon, 20 Oct 2014 21:38:54 +0200 From: Franz Fellner To: Tomi Ollila , Tomi Ollila Message-ID: <544564ceae3dc_25b371be984d@TP_L520.notmuch> In-Reply-To: References: <1412281423-22441-1-git-send-email-imain@stemwinder.org> <20141010114457.GG28601@TP_L520.localdomain> <543822f73d3fd_46ad163fe88cd@ovo.mains.priv.notmuch> <20141011142943.GD23373@TP_L520.localdomain> <543ecc23bb98_2c291569e8c17@ovo.mains.priv.notmuch> <20141017181422.GG20696@TP_L520.localdomain> Subject: Re: [PATCH] VIM: Add URI handling Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: notmuch@notmuchmail.org X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Oct 2014 19:38:50 -0000 Tomi Ollila wrote: > On Fri, Oct 17 2014, Franz Fellner wrote: > > > On Wed, 15 Oct 2014 12:33:55 -0700, Ian Main wrote: > >> Franz Fellner wrote: > >> > Here is a working implementation. > >> > Please review carefully as I only can simulate ruby and vimscript > >> > knowledge from what I see in notmuch.vim sourcefile and quick > >> > googling. > >> > >> Yes, this works nicely. Thanks! > >> > >> I do notice however that this is against the github plugin repo (I think)? > > Yes, that's right. > > I forked the notmuch repo on github and incorporated your patches. > > Already made a mistake while applying one of your patches... > > https://github.com/ff2000/notmuch > > (Hope everythin is fine now) > > > > commit cb757e9e438341a7bc6d2cfec4de7bdcc85946ea > > Author: Franz Fellner > > Date: Fri Oct 17 11:19:41 2014 +0200 > > > > VIM: Add MsgID to supported URIs > > Code-wise this patch looks good -- although I am not entirely sure what id > does -- I expect it to handle id:... links... Yes, that's what it should do. > This email applies with git am (on top of Ian's) but the commit message has > quite a few lines of cruft -- I'd like to see a commit message what > explains what this change do ( the term 'MsgID' seems to be some vim client > internal (subclass in URI class ?) which IMO should be better commented in > this commit message. MsgID was just a short name for message-id, and I am used to CamelCase... VIM: Add support to open messages specified by their message-id in notmuch-show. Does that make more sense? > Tomi > > > > > diff --git a/vim/notmuch.vim b/vim/notmuch.vim > > index 6287cf6..30e1876 100644 > > --- a/vim/notmuch.vim > > +++ b/vim/notmuch.vim > > @@ -268,6 +268,14 @@ ruby << EOF > > if uri.class == URI::MailTo > > vim_puts("Composing new email to #{uri.to}.") > > VIM::command("call s:compose('#{uri.to}')") > > + elsif uri.class == URI::MsgID > > + msg = $curbuf.message(uri.opaque) > > + if !msg > > + vim_puts("Message not found in NotMuch database: #{uri.to_s}") > > + else > > + vim_puts("Opening message #{msg.message_id} in thread #{msg.thread_id}.") > > + VIM::command("call s:show('thread:#{msg.thread_id}', '#{msg.message_id}')") > > + end > > else > > vim_puts("Opening #{uri.to_s}.") > > cmd = VIM::evaluate('g:notmuch_open_uri') > > @@ -428,11 +436,12 @@ endfunction > > > > "" main > > > > -function! s:show(thread_id) > > +function! s:show(thread_id, msg_id) > > call s:new_buffer('show') > > setlocal modifiable > > ruby << EOF > > thread_id = VIM::evaluate('a:thread_id') > > + msg_id = VIM::evaluate('a:msg_id') > > $cur_thread = thread_id > > $messages.clear > > $curbuf.render do |b| > > @@ -464,6 +473,9 @@ ruby << EOF > > end > > b << "" > > nm_m.end = b.count > > + if !msg_id.empty? and nm_m.message_id == msg_id > > + VIM::command("normal #{nm_m.start}zt") > > + end > > end > > b.delete(b.count) > > end > > @@ -486,7 +498,7 @@ ruby << EOF > > when 1; $cur_filter = nil > > when 2; $cur_filter = $cur_search > > end > > - VIM::command("call s:show('#{id}')") > > + VIM::command("call s:show('#{id}', '')") > > EOF > > endfunction > > > > @@ -910,6 +922,10 @@ ruby << EOF > > q > > end > > > > + def message(id) > > + @db.find_message(id) > > + end > > + > > def close > > @queries.delete_if { |q| ! q.destroy! } > > @db.close > > @@ -930,6 +946,13 @@ ruby << EOF > > end > > end > > > > + module URI > > + class MsgID < Generic > > + end > > + > > + @@schemes['ID'] = MsgID > > + end > > + > > class Message > > attr_accessor :start, :body_start, :end > > attr_reader :message_id, :filename, :mail > > _______________________________________________ > > notmuch mailing list > > notmuch@notmuchmail.org > > http://notmuchmail.org/mailman/listinfo/notmuch