Fox comment for declare-function.
[gnus] / todo
1 ;; Also know as the "wish list".  Some are done. For the others, no
2 ;; promise when to be implemented.
3
4 * Go through the todo list and remove items already done.
5
6 * Use a new custom type (`define-widget') for posting-style in `gnus-cus.el'
7   (G c) and for `gnus-posting-styles'.  Maybe some allowed types are still
8   missing.
9
10 * Add proper doc strings to functions and variables explained in the manual
11   (info "(gnus)Gnus Utility Functions")
12
13 * Add Message-IDs or URLs refering to relevant discussions on lists and
14   newsgroups.
15
16 * Use nicer tool bar icons from GNOME
17
18   Done for Emacs (The GNOME icons won't fit into standard XEmacs icons,
19   IMHO. -- rsteib) in group, summary and message mode.
20
21   Some modes might also deserve improved tool bars:
22   
23   - gnus-draft-mode
24   
25   - mml-preview buffer:
26   
27     . zap most buttons; except print, customize (?) and help
28   
29     . "exit" should just kill the buffer
30   
31   - gnus-server-mode: Add some commands from the Connections and Server
32     menu.
33   
34   - gnus-browse-mode (could borrow some icons from gnus-group-mode)
35   
36   (See http://article.gmane.org/gmane.emacs.gnus.general/62147).
37
38 * Maybe Gnus should support the LIST SUBSCRIPTIONS, see RFC 2980.
39
40 * Merge `message-extra-wide-headers' and ` message-header-synonyms'?
41
42 * Maybe texi/emacs-mime.texi could be divided into user-visible stuff and
43   reference manual for the MIME library.
44
45   Related: Bill Wohler's article on mh-e-user.
46   http://thread.gmane.org/29067.1138078896@olgas.newt.com
47
48 * Fix `change servers' command, see David Kastrup's message.
49   http://thread.gmane.org/x54qewqxz4.fsf@lola.goethe.zz
50
51 * texi/gnus-coding.texi should be fixed.
52
53 * gnus-topic-kill-region
54   From Colin Marquardt <colin.marquardt@usa.alcatel.com>
55   
56   I noticed that when re-arranging topics, C-k yanks a topic just fine
57   (runs gnus-topic-kill-group).
58
59   However, my habit is to do marking and the yanking the region, so I
60   would run C-w on the marked topic. But C-w runs
61   gnus-group-kill-region and doesn't yank the topic (for groups it
62   works fine).
63
64   So could we have a gnus-topic-kill-region, or a
65   gnus-group-kill-region which handles topics as well?
66
67 * Speed up sorting in summary buffer if there is a limit.
68   
69   Suggested by Daniel Ortmann <ortmann@isl.net>.
70
71 * Investigate the memory usage of Gnus. 
72
73   But it does seem strange that Gnus would use some 15meg for this.  I
74   think that is worth investigating.  I suspect that bugs or bad
75   design are causing waste; they could be in Gnus, or in Emacs. -- RMS
76
77 * Google group digest
78   
79   The result of Google group search return a thread. Is it a digest
80   format?
81
82 * NOV caching.
83   
84   Implement NOV caching with Gnus Agent.
85
86 * Allow specification of server in Newsgroups header
87   
88   [Kai wrote]
89
90   WIBNI I could put `Newsgroups: nntp+quimby:bla' into a message and
91   Gnus would know to post this message on my server `nntp:quimby' into
92   the group bla?  I think this would be way cool.
93
94   But Gnus would have to rewrite the Newsgroups header before actually
95   sending the posting.
96
97   Thanks for Micha Wiedenmann for this suggestion.
98
99 * Parsing of the common list confirmation requests so that Gnus can
100    prepare the response with a single command.  Including LISTSERV
101    periodic ping messages and the like.
102
103 * Parsing of the subscription notice to stash away details like what
104    address you're subscribed to the list under (and automatically send
105    mail to the list using that address, when you send mail inside the list
106    group), what address to mail to unsubscribe, and the list info message
107    if available.  Hitting the "get FAQ" command inside a mailing list
108    group should display that stashed copy of the info message.
109
110 * Some help in coming up with good split rules for mailing lists, as
111    automated as possible.  Splitting on To and Cc is almost always not
112    what I want, since it can misfile messages and since if I'm cc'd on
113    list mail I want to get both copies, one in my personal mailbox and one
114    in the list mailbox.  I know other people handle it other ways, but I
115    prefer it that way.  Accordingly, some way to semi-automatically
116    generate split rules based on Sender, Mailing-List, Return-Path,
117    X-Loop, and all of the other random headers that often work would be
118    very cool.
119
120 * Support for zipped folders for all backends this makes sense for.
121   Most likely using jka-compr. (It has been suggested that this do
122   work but I think it should be verified for all backends.)
123
124 * Agent (Can someone write some subtopics here? I don't use it myself
125   so I don't know what is lacking.)
126
127 * Support for encrypted folders. Even if the mail arrives unencrypted
128   Gnus should be able to encrypt the *folder* for added safety. This
129   should go for both Gnus' own folders and the folders Gnus reads from
130   (e.g. /var/spool/mail/${USER}). All backends this makes sense for.
131
132   [John Wiegley's article <200011030445.VAA08277@localhost.dynodns.net>,
133    posted on gnu.emacs.gnus does this.
134    Also, gnus-article-encrypt `K E' encrypts the article body.]
135
136 * Splitting .newsrc.eld so the history is in one file and the
137   configuration is in another. To help those that reads at two
138   locations (e.g. work and home) and want to have the same
139   configuration.
140
141 * gnus-uu-decode should complain if one or more parts of a series post
142   (ie, "part N of X") is missing, and optionally tick what parts are
143   there for decoding in a later session.
144
145 * Additional article marking, and an ability to affect marks placed
146   during e.g. mail acquisition.  I want to be able to notice the
147   subject "fast money" or "web traffic", automatically mark it with a
148   `$', and score it into oblivion.  (But I fear that wanting to change
149   marks with mail-source-* and nnmail-* functions will represent a
150   philosophical conflict with the rest of Gnus' management of article
151   marks.  mail-source-* and nnmail-* currently hack around with files
152   under ~/Mail and leave traces in ~/Mail/active, but don't affect
153   things stored in .newsrc.eld.)
154
155 * A much better interface to nnmail-split-methods.  I don't know how
156   I'd like this done, but I know that the current method of manually
157   hacking regexps is pretty untenable for new users.  My boss, who is
158   tenured faculty at CMU and CEO & CTO at JPRC, and whose research
159   work has involved Lisp for the last 25 years, is trying to implant
160   himself in a Gnus mail environment, and this is a big sticking point
161   even for him.
162
163 * PGP-supported encryption of entire nnml & nnmh groups.  There are
164   people with whom I exchange mail routinely who don't send w/PGP, but
165   I'd really rather that the content not be left lying around
166   unencrypted.  Hook into article acquisition the way jka-compr
167   supposedly does, to auto-decrypt every message read.
168
169   [See Support for encrypted folders.]
170
171 * Baby's First Mail In Gnus.  Some set of functions that the
172   new-to-mail-in-Gnus user can invoke which will query the user
173   appropriately for the basic information required to establish mail
174   handling, leaving the appropriate traces in .gnus.  Perhaps a
175   customize buffer would be appropriate.
176   - Where does your mail come from?
177   - If some server, what is your POP/IMAP protocol identity?
178   - What is your identity when sending mail, as opposed to posting to
179     Usenet?
180   - Here are some basic concepts of mail groups (list a few:
181     personal mail, company-wide mail, mailing lists, garbage dumps,
182     receptacles for outbound copies of what one sends; which ones do
183     you want to instantiate, and what mail should land in each?
184     [/viz./ problem of nnmail-split-methods interface.]
185
186   [Probably `assistant.el' will provide this.  But it's development is
187   stalled.]
188
189 * Full integration of nnir into Gnus.  Generic hooks for adding new
190   external nnir sources.  I use a couple experimental, in-house tools
191   (JPRC is a research lab, occupied with document analysis and machine
192   learning) and adding new search engines to nnir by hacking the main
193   nnir.el module is rather clunky.
194
195 * Manual ordering of articles in an nnml folder.
196
197   That is, keystrokes to move articles (or whole threads) up or down
198   in the *Summary* buffer relative to the other articles.  The order
199   would be persistent (e.g., across gnus sessions).
200
201   With this ability, an nnml folder would make for a good to-do list.
202
203 * Since many uses Gnus to store to do lists I think it is time for an
204   nntodo. (I know Kai already written one, maybe use that for a start?)
205
206 * nnsql backend, which would allow messages or folders to be imported
207   in a local (My|Postgre|?)SQL RDBMS.
208
209 * "posting profiles" ideally accessible from a popup menu; allowing
210   choice between predefined profiles of
211   from,name,organization,etc. Example: I'm at home, but need to reply
212   to a work mail; i can hit 'R', then use this command to switch to my
213   'work' profile for purposes of this one reply. (This might already
214   be possible with current Gnus, but I don't think so.)
215
216 * Better handling of the mail retrieving / splitting feature:
217   - the variables <backend>-get-new-mail should not exist anymore. Mail
218     retrieving should be a separate matter.
219   - we should be able to split mails to groups AND backends at the same time.
220   - meanwhile, we should still be able to associate certain mail sources with
221     certain backends.
222
223 * A better interface to the agent download scoring rules, like the one
224   for the other scoring rules.
225
226 * Editing of messages in the agents cache.
227
228 * More article marks (like '!' or '?').
229   Maybe user defined marks that can be displayed as any choosen charakter,
230   so one could do things like limiting on, to do whatever one likes with
231   these articles.
232
233 * A possibility to add notes to messages. If those could include links
234   to other (stored) messages this would be very practical.
235
236 * Allow article editing in groups which do not support it, but
237   emulating it via deleting the old article and entering the new one
238   into the group.  This would be very useful to support `T ^' (say) in
239   nnimap groups.
240
241 * Allow user to specify which kinds of groups should be displayed.
242   For example, I want to display all the groups that are displayed
243   now, plus those which have cached messages in them.  (Gnus does
244   display those with ticked messages but not those with
245   cached-but-unticked ones.)  This would become even more important
246   when we allow labels.
247
248 * Create new data type `article identifier' and use that instead of
249   article numbers.  A first implementation could offer something like
250   (num . 4711) but this could be extended.  This would be useful for
251   using servers with *really* large numbers -- there we could have a
252   bignum type.  It might also be useful for the nnweb and nnultimate
253   thingies where article identifiers are not really numbers.
254
255 * Allow use of digests to keep related articles.  Normally, you use
256   groups to group together articles which are thematically related.
257   But sometimes, you have so many themes that this becomes
258   impractical.  WIBNI I could have digests in a group, and there was a
259   way to add a new article to one of the digests in that group?
260
261   Or maybe what I really want is a way to tell Gnus that a specific
262   thread should always be hidden (as in `T h') by default, while most
263   other threads are not hidden by default.  Hm.
264
265 * New backend nnbabylfolder.  There is also nnbabyl which is like
266   nnmbox but uses babyl format, but there is no babyl format
267   equivalent of nnfolder.
268
269 * Make movement commands in summary buffer independent of `move after
270   mark' behavior when marking articles.  Currently, if you don't want
271   `E' to move to the next unread article, you have to set
272   gnus-summary-goto-unread to nil, and then there is no way to move to
273   the next or previous unread article.
274
275   This one has two sub-tasks.  Providing the commands is one thing,
276   finding out useful key bindings for them is another.  I think we
277   could provide the commands first while not changing the behavior of
278   the key bindings; then different people can experiment with
279   different key binding schemes until we find something which suits
280   many people.
281
282 * `Move to next/previous/first article' is a misnomer, since ticked
283   articles are also unread but not moved to by these commands.  Should
284   the terminology be fixed or the documentation, or what?
285
286 * Allow sorting of threads by newest article rather than by root of
287   thread.  Consider the following thread structure:
288
289     root1       Jan 1
290       leaf1     Jan 4
291     root2       Jan 2
292       leaf2     Jan 3
293
294   These two threads are sorted this way because root1 is older than
295   root2.  I want an option to sort them the other way round because
296   leaf1 is newer than leaf2.
297
298 * Improve editing of MIME messages.  I would like to use html-mode to
299   edit the body of a text/html message, and enriched-mode for
300   text/enriched messages, and so on.  This should go for multipart
301   messages as well.  This is probably a hard one since Emacs currently
302   does not allow several major modes per buffer.  But maybe it would
303   be nice to hack Emacs to provide this infrastructure so that Gnus
304   can make use of it?  This would also make it possible to provide
305   nifty commands for editing the headers, for example, rather than
306   relying on commands which do the same thing everywhere.
307   message-x.el is really just a half-assed attempt at doing it, and
308   while it is useful, that's not the way it should be done.
309
310   I think Francisco Potort\e,Al\e(B already did something like this?
311
312 * Provide commands for editing MML tags.  For example, there could be
313   a command mml-add-tag-attribute which prompts me for an attribute
314   name (with completion, from the set filename, type, ...), and then
315   for a value.  (This is like `C-c +' in psgml.)  Or there could be a
316   command which showed me all the attributes in an MML tag and allows
317   me to use TAB to move between them, and then to edit each attribute
318   value.  (This is like `C-c C-a' in psgml.)
319
320 * Have Gnus automagically set group parameters for mailing list
321   groups.  For example, if I have a splitting rule that automatically
322   sorts ding@gnus.org into mail.ding, then Gnus should clue in, set
323   the to-list parameter to 'ding@gnus.org', and set total-expire.
324   (This is probably Hard (TM).  And of course the user should be able
325   to configure what parameters exactly get set.)
326
327 * Along the same lines, automagically detect broken reply-to's.  (But
328   don't auto-detect users legitimately setting a reply-to header that
329   points back to the list.)
330
331 * Make it easier to change parameters on a set of groups,
332   e.g. set/clear gcc-self on process-marked groups.
333
334 * Make it easier/possible to migrate between primary select-methods,
335   if that concept is going to be kept.  Right now I have only one
336   group on my primary server, and I'd kind of like to change from nntp
337   to nnml, but apparently this doesn't work well.
338
339 * Make it possible to refer to uniquely-named groups without
340   select-method prefix (e.g. mail.misc instead of nnml:mail.misc).
341
342 * Allow a user-defined picons directory for personal groups.
343
344 * Annotations as discussed last autumn. Be able to make comments to
345   articles for all backends. The comments maybe should go into a
346   seperate "backend", like nndraft.
347
348 * Catchup on a topic and all its subtopics. I.e. do "c y" when on a
349   topic line in *Group*.
350
351 * Better/more advanced subject washing in *Summary*, see my
352   js-gnus-simplify-subject-function I posted earlier this winter.
353
354 ;; From Newest Features node. Some are not done.
355
356 * I would like the zombie-page to contain an URL to the source of the
357 latest version of gnus or some explanation on where to find it.
358
359 *  A way to continue editing the latest Message composition.
360
361 *  facep is not declared.
362
363 * Include a section in the manual on why the number of articles isn't
364 the same in the group buffer and on the SPC prompt.
365
366 *  Interacting with rmail fcc isn't easy.
367
368 *       Hypermail:
369       http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
370
371    [w3 or nnwarchive?]
372
373 * `^-- ' is made into - in LaTeX.
374
375 *  gnus-kill is much slower than it was in GNUS 4.1.3.
376
377 *  when expunging articles on low score, the sparse nodes keep
378  hanging on?
379
380 *  starting the first time seems to hang Gnus on some systems.  Does
381  NEWGROUPS answer too fast?
382
383 *  nndir doesn't read gzipped files.
384
385 *  when moving mail from a procmail spool to the crash-box, the
386  crash-box is only appropriate to one specific group.
387
388 *  nnmh-be-safe means that crossposted articles will be marked as
389  unread.
390
391 *  Orphan score entries don't show on "V t" score trace
392
393 *  when clearing out data, the cache data should also be reset.
394
395 * rewrite gnus-summary-limit-children to be non-recursive to avoid
396 exceeding lisp nesting on huge groups.
397
398 *  expunged articles are counted when computing scores.
399
400 *  ticked articles aren't easy to read in pick mode - `n' and stuff
401  just skips past them.  Read articles are the same.
402