]> git.notmuchmail.org Git - notmuch/blobdiff - vim/notmuch.vim
vim: remove unnecessary buffer queue
[notmuch] / vim / notmuch.vim
index 42c5f188431ee14ed50390a1c9818a66250088fc..9109470a9561eba268dcedc20426b59d9d3611da 100644 (file)
@@ -1,4 +1,4 @@
-if exists("g:loaded_notmuch_rb")
+if exists("g:loaded_notmuch")
        finish
 endif
 
@@ -6,16 +6,16 @@ if !has("ruby") || version < 700
        finish
 endif
 
-let g:loaded_notmuch_rb = "yep"
+let g:loaded_notmuch = "yep"
 
-let g:notmuch_rb_folders_maps = {
+let g:notmuch_folders_maps = {
        \ '<Enter>':    'folders_show_search()',
        \ 's':          'folders_search_prompt()',
        \ '=':          'folders_refresh()',
        \ 'c':          'compose()',
        \ }
 
-let g:notmuch_rb_search_maps = {
+let g:notmuch_search_maps = {
        \ 'q':          'kill_this_buffer()',
        \ '<Enter>':    'search_show_thread(1)',
        \ '<Space>':    'search_show_thread(2)',
@@ -28,7 +28,7 @@ let g:notmuch_rb_search_maps = {
        \ 'c':          'compose()',
        \ }
 
-let g:notmuch_rb_show_maps = {
+let g:notmuch_show_maps = {
        \ 'q':          'kill_this_buffer()',
        \ 'A':          'show_tag("-inbox -unread")',
        \ 'I':          'show_tag("-unread")',
@@ -43,49 +43,28 @@ let g:notmuch_rb_show_maps = {
        \ 'c':          'compose()',
        \ }
 
-let g:notmuch_rb_compose_maps = {
+let g:notmuch_compose_maps = {
        \ ',s':         'compose_send()',
        \ ',q':         'compose_quit()',
        \ }
 
-let s:notmuch_rb_folders_default = [
+let s:notmuch_folders_default = [
        \ [ 'new', 'tag:inbox and tag:unread' ],
        \ [ 'inbox', 'tag:inbox' ],
        \ [ 'unread', 'tag:unread' ],
        \ ]
 
-let s:notmuch_rb_date_format_default = '%d.%m.%y'
-let s:notmuch_rb_datetime_format_default = '%d.%m.%y %H:%M:%S'
-let s:notmuch_rb_reader_default = 'mutt -f %s'
-let s:notmuch_rb_sendmail_default = 'sendmail'
-let s:notmuch_rb_folders_count_threads_default = 0
-
-if !exists('g:notmuch_rb_date_format')
-       let g:notmuch_rb_date_format = s:notmuch_rb_date_format_default
-endif
-
-if !exists('g:notmuch_rb_datetime_format')
-       let g:notmuch_rb_datetime_format = s:notmuch_rb_datetime_format_default
-endif
-
-if !exists('g:notmuch_rb_reader')
-       let g:notmuch_rb_reader = s:notmuch_rb_reader_default
-endif
-
-if !exists('g:notmuch_rb_sendmail')
-       let g:notmuch_rb_sendmail = s:notmuch_rb_sendmail_default
-endif
-
-if !exists('g:notmuch_rb_folders_count_threads')
-       let g:notmuch_rb_folders_count_threads = s:notmuch_rb_folders_count_threads_default
-endif
+let s:notmuch_date_format_default = '%d.%m.%y'
+let s:notmuch_datetime_format_default = '%d.%m.%y %H:%M:%S'
+let s:notmuch_reader_default = 'mutt -f %s'
+let s:notmuch_sendmail_default = 'sendmail'
+let s:notmuch_folders_count_threads_default = 0
 
 function! s:new_file_buffer(type, fname)
        exec printf('edit %s', a:fname)
        execute printf('set filetype=notmuch-%s', a:type)
        execute printf('set syntax=notmuch-%s', a:type)
        ruby $curbuf.init(VIM::evaluate('a:type'))
-       ruby $buf_queue.push($curbuf.number)
 endfunction
 
 function! s:compose_unload()
@@ -146,7 +125,7 @@ endfunction
 function! s:show_reply()
        ruby open_reply get_message.mail
        let b:compose_done = 0
-       call s:set_map(g:notmuch_rb_compose_maps)
+       call s:set_map(g:notmuch_compose_maps)
        autocmd BufUnload <buffer> call s:compose_unload()
        startinsert!
 endfunction
@@ -154,7 +133,7 @@ endfunction
 function! s:compose()
        ruby open_compose
        let b:compose_done = 0
-       call s:set_map(g:notmuch_rb_compose_maps)
+       call s:set_map(g:notmuch_compose_maps)
        autocmd BufUnload <buffer> call s:compose_unload()
        startinsert!
 endfunction
@@ -179,7 +158,7 @@ function! s:show_open_msg()
 ruby << EOF
        m = get_message
        mbox = File.expand_path('~/.notmuch/vim_mbox')
-       cmd = VIM::evaluate('g:notmuch_rb_reader') % mbox
+       cmd = VIM::evaluate('g:notmuch_reader') % mbox
        system "notmuch show --format=mbox id:#{m.message_id} > #{mbox} && #{cmd}"
 EOF
 endfunction
@@ -288,13 +267,8 @@ endfunction
 
 function! s:kill_this_buffer()
 ruby << EOF
-       if $buf_queue.size > 1
-               $curbuf.close
-               VIM::command("bdelete!")
-               $buf_queue.pop
-               b = $buf_queue.last
-               VIM::command("buffer #{b}") if b
-       end
+       $curbuf.close
+       VIM::command("bdelete!")
 EOF
 endfunction
 
@@ -313,7 +287,6 @@ function! s:new_buffer(type)
        execute printf('set filetype=notmuch-%s', a:type)
        execute printf('set syntax=notmuch-%s', a:type)
        ruby $curbuf.init(VIM::evaluate('a:type'))
-       ruby $buf_queue.push($curbuf.number)
 endfunction
 
 function! s:set_menu_buffer()
@@ -340,7 +313,7 @@ ruby << EOF
                        part = m.find_first_text
                        nm_m = Message.new(msg, m)
                        $messages << nm_m
-                       date_fmt = VIM::evaluate('g:notmuch_rb_datetime_format')
+                       date_fmt = VIM::evaluate('g:notmuch_datetime_format')
                        date = Time.at(msg.date).strftime(date_fmt)
                        nm_m.start = b.count
                        b << "%s %s (%s)" % [msg['from'], date, msg.tags]
@@ -365,7 +338,7 @@ ruby << EOF
        end
 EOF
        setlocal nomodifiable
-       call s:set_map(g:notmuch_rb_show_maps)
+       call s:set_map(g:notmuch_show_maps)
 endfunction
 
 function! s:search_show_thread(mode)
@@ -388,7 +361,7 @@ ruby << EOF
        search_render($cur_search)
 EOF
        call s:set_menu_buffer()
-       call s:set_map(g:notmuch_rb_search_maps)
+       call s:set_map(g:notmuch_search_maps)
        autocmd CursorMoved <buffer> call s:show_cursor_moved()
 endfunction
 
@@ -404,26 +377,73 @@ function! s:folders()
        call s:new_buffer('folders')
        ruby folders_render()
        call s:set_menu_buffer()
-       call s:set_map(g:notmuch_rb_folders_maps)
+       call s:set_map(g:notmuch_folders_maps)
 endfunction
 
 "" root
 
 function! s:set_defaults()
-       if exists('g:notmuch_rb_custom_search_maps')
-               call extend(g:notmuch_rb_search_maps, g:notmuch_rb_custom_search_maps)
+       if !exists('g:notmuch_date_format')
+               if exists('g:notmuch_rb_date_format')
+                       let g:notmuch_date_format = g:notmuch_rb_date_format
+               else
+                       let g:notmuch_date_format = s:notmuch_date_format_default
+               endif
+       endif
+
+       if !exists('g:notmuch_datetime_format')
+               if exists('g:notmuch_rb_datetime_format')
+                       let g:notmuch_datetime_format = g:notmuch_rb_datetime_format
+               else
+                       let g:notmuch_datetime_format = s:notmuch_datetime_format_default
+               endif
+       endif
+
+       if !exists('g:notmuch_reader')
+               if exists('g:notmuch_rb_reader')
+                       let g:notmuch_reader = g:notmuch_rb_reader
+               else
+                       let g:notmuch_reader = s:notmuch_reader_default
+               endif
+       endif
+
+       if !exists('g:notmuch_sendmail')
+               if exists('g:notmuch_rb_sendmail')
+                       let g:notmuch_sendmail = g:notmuch_rb_sendmail
+               else
+                       let g:notmuch_sendmail = s:notmuch_sendmail_default
+               endif
+       endif
+
+       if !exists('g:notmuch_folders_count_threads')
+               if exists('g:notmuch_rb_count_threads')
+                       let g:notmuch_count_threads = g:notmuch_rb_count_threads
+               else
+                       let g:notmuch_folders_count_threads = s:notmuch_folders_count_threads_default
+               endif
+       endif
+
+       if !exists('g:notmuch_custom_search_maps') && exists('g:notmuch_rb_custom_search_maps')
+               let g:notmuch_custom_search_maps = g:notmuch_rb_custom_search_maps
+       endif
+
+       if !exists('g:notmuch_custom_show_maps') && exists('g:notmuch_rb_custom_show_maps')
+               let g:notmuch_custom_show_maps = g:notmuch_rb_custom_show_maps
+       endif
+
+       if exists('g:notmuch_custom_search_maps')
+               call extend(g:notmuch_search_maps, g:notmuch_custom_search_maps)
        endif
 
-       if exists('g:notmuch_rb_custom_show_maps')
-               call extend(g:notmuch_rb_show_maps, g:notmuch_rb_custom_show_maps)
+       if exists('g:notmuch_custom_show_maps')
+               call extend(g:notmuch_show_maps, g:notmuch_custom_show_maps)
        endif
 
-       " TODO for now lets check the old folders too
-       if !exists('g:notmuch_rb_folders')
-               if exists('g:notmuch_folders')
-                       let g:notmuch_rb_folders = g:notmuch_folders
+       if !exists('g:notmuch_folders')
+               if exists('g:notmuch_rb_folders')
+                       let g:notmuch_folders = g:notmuch_rb_folders
                else
-                       let g:notmuch_rb_folders = s:notmuch_rb_folders_default
+                       let g:notmuch_folders = s:notmuch_folders_default
                endif
        endif
 endfunction
@@ -444,7 +464,6 @@ ruby << EOF
        $db_name = nil
        $email = $email_name = $email_address = nil
        $searches = []
-       $buf_queue = []
        $threads = []
        $messages = []
        $config = {}
@@ -613,8 +632,8 @@ ruby << EOF
 
        def folders_render()
                $curbuf.render do |b|
-                       folders = VIM::evaluate('g:notmuch_rb_folders')
-                       count_threads = VIM::evaluate('g:notmuch_rb_folders_count_threads')
+                       folders = VIM::evaluate('g:notmuch_folders')
+                       count_threads = VIM::evaluate('g:notmuch_folders_count_threads')
                        $searches.clear
                        folders.each do |name, search|
                                q = $curbuf.query(search)
@@ -626,7 +645,7 @@ ruby << EOF
        end
 
        def search_render(search)
-               date_fmt = VIM::evaluate('g:notmuch_rb_date_format')
+               date_fmt = VIM::evaluate('g:notmuch_date_format')
                q = $curbuf.query(search)
                q.sort = Notmuch::SORT_NEWEST_FIRST
                $threads.clear