On 24-11 08:38, Keith Packard wrote: > On Tue, 24 Nov 2009 13:14:07 +0100, Jan Janak <jan@ryngle.com> wrote: > > > I like this. I think this is much cleaner than the "virtual tag" > > approach. > > A disadvantage I see is that you would not see this 'virtual tags' in > the list of tags on each message. Maybe I don't understand how virtual tags are really supposed to work. I thought that the term "virtual tags" is just another name for "named" search terms and it is named "virtual tags" because they can actually be attached to messages stored in the database. And if I remember it correctly, Carl said somewhere that virtual tags will be added/removed automatically to messages if the corresponding search term gets changed. If my understanding is correct, then we won't be able to show virtual tags along with "normal" tags anyway. We would probably need a separate list just for virtual tags. One of the reasons is that you can add and remove normal tags to messages manually, but you cannot easily do the same with virtual tags. If you remove a virtual tag from a message and then update the search term bound to that virtual tag, as soon as you change the search term, the virtual tag might be added to the message again if the new search expression still matches the message. Unlike real tags, the user won't be able to add and remove virtual tags to messages arbitrarily without the risk that notmuch changes the selection behind his back on the next update of the configuration file (assuming that the search expression is stored in the configuration file). We would probably need to make sure that the user knows which tags are virtual and which are real and that means notmuch would have to present them differently, possibly in a separate list. Thinking more about this, we could probably make it possible to add and remove virtual tags to messages manually by storing the information about what the user did with the virtual tag along with the message (i.e. this virtual tag is pinned to the message so don't remove it when the search term is changed). Maybe I just don't understand how virtual tags are really supposed to work, but it seems to me as a can of worms just waiting to be opened :-). -- Jan