vim: add a helpful header to notmuch-compose mode
authorBart Trojanowski <bart@jukie.net>
Fri, 27 Nov 2009 04:04:53 +0000 (23:04 -0500)
committerBart Trojanowski <bart@jukie.net>
Fri, 27 Nov 2009 04:07:07 +0000 (23:07 -0500)
vim/plugin/notmuch.vim
vim/syntax/notmuch-compose.vim

index d3e313533060fca8728d899083a7ed7d0fc046b9..341f3370dad8d821062a0bb3aa87c50b17cbaf50 100644 (file)
@@ -53,6 +53,7 @@ let s:notmuch_defaults = {
         \
         \ 'g:notmuch_show_citation_regexp':          '^\s*>'                      ,
         \
         \
         \ 'g:notmuch_show_citation_regexp':          '^\s*>'                      ,
         \
+        \ 'g:notmuch_compose_header_help':           1                            ,
         \ 'g:notmuch_compose_temp_file_dir':         '~/.notmuch/compose/'        ,
         \ }
 
         \ 'g:notmuch_compose_temp_file_dir':         '~/.notmuch/compose/'        ,
         \ }
 
@@ -161,6 +162,7 @@ let g:notmuch_show_maps = {
 " --- --- bindings for compose screen {{{2
 let g:notmuch_compose_nmaps = {
         \ ',s':         ':call <SID>NM_compose_send()<CR>',
 " --- --- bindings for compose screen {{{2
 let g:notmuch_compose_nmaps = {
         \ ',s':         ':call <SID>NM_compose_send()<CR>',
+        \ ',a':         ':call <SID>NM_compose_attach()<CR>',
         \ ',q':         ':call <SID>NM_kill_this_buffer()<CR>',
         \ '<Tab>':      ':call <SID>NM_compose_next_entry_area()<CR>',
         \ }
         \ ',q':         ':call <SID>NM_kill_this_buffer()<CR>',
         \ '<Tab>':      ':call <SID>NM_compose_next_entry_area()<CR>',
         \ }
@@ -875,7 +877,13 @@ endfunction
 " --- implement compose screen {{{1
 
 function! s:NM_cmd_compose(words, body_lines)
 " --- implement compose screen {{{1
 
 function! s:NM_cmd_compose(words, body_lines)
-        let lines = []
+        let lines = !g:notmuch_compose_header_help ? [] : [
+                  \ 'Notmuch-Help: Type in your message here; to help you use these bindings:',
+                  \ 'Notmuch-Help:   ,a    - attach a file',
+                  \ 'Notmuch-Help:   ,s    - send the message (Notmuch-Help lines will be removed)',
+                  \ 'Notmuch-Help:   ,q    - abort the message',
+                  \ 'Notmuch-Help:   <Tab> - skip through header lines',
+                  \ ]
         let start_on_line = 0
 
         let hdrs = { }
         let start_on_line = 0
 
         let hdrs = { }
@@ -931,22 +939,22 @@ function! s:NM_cmd_compose(words, body_lines)
                                   \ 'compose', lines)
         setlocal bufhidden=hide
 
                                   \ 'compose', lines)
         setlocal bufhidden=hide
 
-        call <SID>NM_cmd_compose_mksyntax()
         call <SID>NM_set_map('n', g:notmuch_compose_nmaps)
         call <SID>NM_set_map('i', g:notmuch_compose_imaps)
 
         call <SID>NM_set_map('n', g:notmuch_compose_nmaps)
         call <SID>NM_set_map('i', g:notmuch_compose_imaps)
 
-        exec printf('norm %dG', start_on_line)
+        call cursor(start_on_line, strlen(start_on_line) + 1)
         startinsert!
         echo 'Type your message, use <TAB> to jump to next header and then body.'
 endfunction
         startinsert!
         echo 'Type your message, use <TAB> to jump to next header and then body.'
 endfunction
-function! s:NM_cmd_compose_mksyntax()
-        silent! setlocal syntax=mail
-endfunction
 
 function! s:NM_compose_send()
         echo 'not implemented'
 endfunction
 
 
 function! s:NM_compose_send()
         echo 'not implemented'
 endfunction
 
+function! s:NM_compose_attach()
+        echo 'not implemented'
+endfunction
+
 function! s:NM_compose_next_entry_area()
         let lnum = line('.')
         let hdr_end = <SID>NM_compose_find_line_match(1,'^$',1)
 function! s:NM_compose_next_entry_area()
         let lnum = line('.')
         let hdr_end = <SID>NM_compose_find_line_match(1,'^$',1)
index fe4efd4b4cc023d1266834d84843ae98c4598b16..19adb7568ef0c221e5f91a5a156bb787795dd0f1 100644 (file)
@@ -1,2 +1,7 @@
-silent! setlocal syntax=mail
+runtime! syntax/mail.vim
 
 
+syntax region nmComposeHelp          contains=nmComposeHelpLine start='^Notmuch-Help:\%1l' end='^\(Notmuch-Help:\)\@!'
+syntax match  nmComposeHelpLine      /Notmuch-Help:/ contained
+
+highlight link nmComposeHelp        Include
+highlight link nmComposeHelpLine    Error