vmail 0.9.9 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +7 -3
- data/TODO +14 -0
- data/lib/vmail.vim +3 -1
- data/lib/vmail/imap_client.rb +20 -1
- data/lib/vmail/version.rb +1 -1
- metadata +3 -3
data/README.markdown
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
vmail is a Vim interface to Gmail.
|
4
4
|
|
5
|
-
Why vmail? Because some people are 1000 times more
|
5
|
+
Why vmail? Because some people are 1000 times more productive and happy in [Vim][vim]
|
6
6
|
than in any web browser or GUI program.
|
7
7
|
|
8
8
|
[vim]:http://www.vim.org/
|
@@ -67,11 +67,16 @@ You can omit the password key-value pair if you'd rather not have the password
|
|
67
67
|
saved in the file. In that case, you'll prompted for the password each time you
|
68
68
|
start vmail.
|
69
69
|
|
70
|
+
If you want to configure vmail with multiple Gmail accounts, [here's how][multiaccount].
|
71
|
+
|
72
|
+
[multiaccount]:https://github.com/danchoi/vmail/wiki/How-can-i-quickly-switch-between-multiple-accounts%3F
|
73
|
+
|
70
74
|
If you are behind a firewall that blocks IMAP, see these [additional
|
71
75
|
configuration options][firewall] that you can use.
|
72
76
|
|
73
77
|
[firewall]:https://github.com/danchoi/vmail/wiki/How-to-use-vmail-behind-a-firewall-that-blocks-IMAP
|
74
78
|
|
79
|
+
|
75
80
|
## Contacts autocompletion
|
76
81
|
|
77
82
|
vmail uses Vim autocompletion to help you auto-complete email addresses.
|
@@ -405,8 +410,7 @@ vmail or put this command in your `~/.bash_profile`.
|
|
405
410
|
Note that when vmail uses MacVim, the terminal window in which you invoke vmail
|
406
411
|
will show vmail's logging output while MacVim is running. To quit vmail in
|
407
412
|
MacVim mode, first quit the MacVim window running vmail, and then press CTRL-c
|
408
|
-
in the original terminal window to stop the vmail process
|
409
|
-
MacVim app.
|
413
|
+
in the original terminal window to stop the vmail process.
|
410
414
|
|
411
415
|
There seems to be a bug in MacVim that prevent some the status line messages
|
412
416
|
from becoming visible, but this is minor issue.
|
data/TODO
CHANGED
@@ -19,4 +19,18 @@ Sat Dec 18 09:08:47 EST 2010
|
|
19
19
|
|
20
20
|
- use IMAP EXISTS command to check for updates.
|
21
21
|
|
22
|
+
------------------------------------------------------------------------
|
23
|
+
Mon Dec 20 08:14:54 EST 2010
|
24
|
+
|
25
|
+
- make the 100 list batch limit adjustable, through some flag or env
|
26
|
+
variable
|
27
|
+
|
28
|
+
- starring from msg window should keep the cursor there
|
29
|
+
|
30
|
+
- starred messages should be indicated as such in msg window
|
31
|
+
|
32
|
+
- after switching into a cached mailbox, check for update? or at least
|
33
|
+
show when the mailbox was last updated.
|
22
34
|
|
35
|
+
- bug: mark as read a message, should update the cached version in
|
36
|
+
current message list cache
|
data/lib/vmail.vim
CHANGED
@@ -77,7 +77,9 @@ function! s:show_message(stay_in_message_list)
|
|
77
77
|
endif
|
78
78
|
" remove the unread flag +
|
79
79
|
" TODO!
|
80
|
-
|
80
|
+
" tetset
|
81
|
+
let newline = substitute(line, '^\V*+', '* ', '')
|
82
|
+
let newline = substitute(newline, '^\V+ ', ' ', '')
|
81
83
|
setlocal modifiable
|
82
84
|
call setline(line('.'), newline)
|
83
85
|
setlocal nomodifiable
|
data/lib/vmail/imap_client.rb
CHANGED
@@ -414,9 +414,12 @@ module Vmail
|
|
414
414
|
return @current_message
|
415
415
|
end
|
416
416
|
|
417
|
-
prefetch_adjacent(index)
|
417
|
+
prefetch_adjacent(index) # TODO mark these as unread
|
418
418
|
|
419
419
|
envelope_data = current_message_list_cache[index]
|
420
|
+
log envelope_data.inspect
|
421
|
+
# TODO factor this gsubbing stuff out into own function
|
422
|
+
envelope_data[:row_text] = envelope_data[:row_text].gsub(/^\+ /, ' ').gsub(/^\*\+/, '* ') # mark as read in cache
|
420
423
|
seqno = envelope_data[:seqno]
|
421
424
|
uid = envelope_data[:uid]
|
422
425
|
log "showing message index: #{index} seqno: #{seqno} uid #{uid}"
|
@@ -459,6 +462,11 @@ module Vmail
|
|
459
462
|
end
|
460
463
|
res[0]
|
461
464
|
end
|
465
|
+
# TODO keep these marked unread; test this
|
466
|
+
if envelope_data[:row_text] =~ /^\*?\+/ # not seen
|
467
|
+
log "reflagging index #{index} uid #{uid} as not seen"
|
468
|
+
flag("#{index}..#{index}", '-FLAGS', :Seen) # change flag() method to accept a single index later
|
469
|
+
end
|
462
470
|
size = fetch_data.attr["RFC822.SIZE"]
|
463
471
|
mail = Mail.new(fetch_data.attr['RFC822'])
|
464
472
|
formatter = Vmail::MessageFormatter.new(mail)
|
@@ -529,6 +537,17 @@ EOF
|
|
529
537
|
log "@imap.uid_store #{uid_set.inspect} #{action} [#{flg.to_sym}]"
|
530
538
|
log @imap.uid_store(uid_set, action, [flg.to_sym])
|
531
539
|
end
|
540
|
+
|
541
|
+
# mark cached versions of the rows with flag/unflag
|
542
|
+
uid_set.each do |uid|
|
543
|
+
envelope_data = current_message_list_cache.detect {|x| x[:uid] == uid}
|
544
|
+
if action == '+FLAGS' && flg == 'Flagged'
|
545
|
+
envelope_data[:row_text] = envelope_data[:row_text].gsub(/^\+ /, '*+').gsub(/^ /, '* ') # mark as read in cache
|
546
|
+
elsif action == '-FLAGS' && flg == 'Flagged'
|
547
|
+
envelope_data[:row_text] = envelope_data[:row_text].gsub(/^\*\+/, '+ ').gsub(/^\* /, ' ') # mark as read in cache
|
548
|
+
end
|
549
|
+
end
|
550
|
+
|
532
551
|
end
|
533
552
|
end
|
534
553
|
|
data/lib/vmail/version.rb
CHANGED