vim: add option to compose new messages
authorFelipe Contreras <felipe.contreras@gmail.com>
Mon, 14 Oct 2013 06:58:20 +0000 (01:58 -0500)
committerFelipe Contreras <felipe.contreras@gmail.com>
Wed, 20 Nov 2013 13:23:29 +0000 (07:23 -0600)
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
vim/notmuch.vim

index 8383fd65a5448b3610fee105235720419d5f4464..42c5f188431ee14ed50390a1c9818a66250088fc 100644 (file)
@@ -12,6 +12,7 @@ let g:notmuch_rb_folders_maps = {
        \ '<Enter>':    'folders_show_search()',
        \ 's':          'folders_search_prompt()',
        \ '=':          'folders_refresh()',
+       \ 'c':          'compose()',
        \ }
 
 let g:notmuch_rb_search_maps = {
@@ -24,6 +25,7 @@ let g:notmuch_rb_search_maps = {
        \ 's':          'search_search_prompt()',
        \ '=':          'search_refresh()',
        \ '?':          'search_info()',
+       \ 'c':          'compose()',
        \ }
 
 let g:notmuch_rb_show_maps = {
@@ -38,6 +40,7 @@ let g:notmuch_rb_show_maps = {
        \ 'r':          'show_reply()',
        \ '?':          'show_info()',
        \ '<Tab>':      'show_next_msg()',
+       \ 'c':          'compose()',
        \ }
 
 let g:notmuch_rb_compose_maps = {
@@ -148,6 +151,14 @@ function! s:show_reply()
        startinsert!
 endfunction
 
+function! s:compose()
+       ruby open_compose
+       let b:compose_done = 0
+       call s:set_map(g:notmuch_rb_compose_maps)
+       autocmd BufUnload <buffer> call s:compose_unload()
+       startinsert!
+endfunction
+
 function! s:show_info()
        ruby vim_puts get_message.inspect
 endfunction
@@ -578,6 +589,28 @@ ruby << EOF
                open_compose_helper(lines, cur)
        end
 
+       def open_compose()
+               lines = []
+
+               lines << "Date: #{Time.now().strftime('%a, %-d %b %Y %T %z')}"
+               lines << "From: #{$email}"
+               lines << "To: "
+               cur = lines.count
+
+               lines << "Cc: "
+               lines << "Bcc: "
+               lines << "Message-Id: #{generate_message_id}"
+               lines << "Subject: "
+               lines << "Mime-Version: 1.0"
+               lines << "Content-Type: text/plain; charset=utf-8"
+               lines << "Content-Transfer-Encoding: 7bit"
+               lines << ""
+               lines << ""
+               lines << ""
+
+               open_compose_helper(lines, cur)
+       end
+
        def folders_render()
                $curbuf.render do |b|
                        folders = VIM::evaluate('g:notmuch_rb_folders')