gnus: Loose Threads

 
 3.9.1.1 Loose Threads
 .....................
 
 ‘gnus-summary-make-false-root’
      If non-‘nil’, Gnus will gather all loose subtrees into one big tree
      and create a dummy root at the top.  (Wait a minute.  Root at the
      top?  Yup.)  Loose subtrees occur when the real root has expired,
      or you’ve read or killed the root in a previous session.
 
      When there is no real root of a thread, Gnus will have to fudge
      something.  This variable says what fudging method Gnus should use.
      There are four possible values:
 
      ‘adopt’
           Gnus will make the first of the orphaned articles the parent.
           This parent will adopt all the other articles.  The adopted
           articles will be marked as such by pointy brackets (‘<>’)
           instead of the standard square brackets (‘[]’).  This is the
           default method.
 
      ‘dummy’
           Gnus will create a dummy summary line that will pretend to be
           the parent.  This dummy line does not correspond to any real
           article, so selecting it will just select the first real
           article after the dummy article.
           ‘gnus-summary-dummy-line-format’ is used to specify the format
           of the dummy roots.  It accepts only one format spec: ‘S’,
           which is the subject of the article.  SeeFormatting
           Variables.  If you want all threads to have a dummy root,
           even the non-gathered ones, set
           ‘gnus-summary-make-false-root-always’ to ‘t’.
 
      ‘empty’
           Gnus won’t actually make any article the parent, but simply
           leave the subject field of all orphans except the first empty.
           (Actually, it will use ‘gnus-summary-same-subject’ as the
           subject (SeeSummary Buffer Format).)
 
      ‘none’
           Don’t make any article parent at all.  Just gather the threads
           and display them after one another.
 
      ‘nil’
           Don’t gather loose threads.
 
 ‘gnus-summary-gather-subject-limit’
      Loose threads are gathered by comparing subjects of articles.  If
      this variable is ‘nil’, Gnus requires an exact match between the
      subjects of the loose threads before gathering them into one big
      super-thread.  This might be too strict a requirement, what with
      the presence of stupid newsreaders that chop off long subject
      lines.  If you think so, set this variable to, say, 20 to require
      that only the first 20 characters of the subjects have to match.
      If you set this variable to a really low number, you’ll find that
      Gnus will gather everything in sight into one thread, which isn’t
      very helpful.
 
      If you set this variable to the special value ‘fuzzy’, Gnus will
      use a fuzzy string comparison algorithm on the subjects (See
      Fuzzy Matching).
 
 ‘gnus-simplify-subject-fuzzy-regexp’
      This can either be a regular expression or list of regular
      expressions that match strings that will be removed from subjects
      if fuzzy subject simplification is used.
 
 ‘gnus-simplify-ignored-prefixes’
      If you set ‘gnus-summary-gather-subject-limit’ to something as low
      as 10, you might consider setting this variable to something
      sensible:
 
           (setq gnus-simplify-ignored-prefixes
                 (concat
                  "\\`\\[?\\("
                  (mapconcat
                   'identity
                   '("looking"
                     "wanted" "followup" "summary\\( of\\)?"
                     "help" "query" "problem" "question"
                     "answer" "reference" "announce"
                     "How can I" "How to" "Comparison of"
                     ;; ...
                     )
                   "\\|")
                  "\\)\\s *\\("
                  (mapconcat 'identity
                             '("for" "for reference" "with" "about")
                             "\\|")
                  "\\)?\\]?:?[ \t]*"))
 
      All words that match this regexp will be removed before comparing
      two subjects.
 
 ‘gnus-simplify-subject-functions’
      If non-‘nil’, this variable overrides
      ‘gnus-summary-gather-subject-limit’.  This variable should be a
      list of functions to apply to the ‘Subject’ string iteratively to
      arrive at the simplified version of the string.
 
      Useful functions to put in this list include:
 
      ‘gnus-simplify-subject-re’
           Strip the leading ‘Re:’.
 
      ‘gnus-simplify-subject-fuzzy’
           Simplify fuzzily.
 
      ‘gnus-simplify-whitespace’
           Remove excessive whitespace.
 
      ‘gnus-simplify-all-whitespace’
           Remove all whitespace.
 
      You may also write your own functions, of course.
 
 ‘gnus-summary-gather-exclude-subject’
      Since loose thread gathering is done on subjects only, that might
      lead to many false hits, especially with certain common subjects
      like ‘’ and ‘(none)’.  To make the situation slightly better, you
      can use the regexp ‘gnus-summary-gather-exclude-subject’ to say
      what subjects should be excluded from the gathering process.
      The default is ‘^ *$\\|^(none)$’.
 
 ‘gnus-summary-thread-gathering-function’
      Gnus gathers threads by looking at ‘Subject’ headers.  This means
      that totally unrelated articles may end up in the same “thread”,
      which is confusing.  An alternate approach is to look at all the
      ‘Message-ID’s in all the ‘References’ headers to find matches.
      This will ensure that no gathered threads ever include unrelated
      articles, but it also means that people who have posted with broken
      newsreaders won’t be gathered properly.  The choice is yours—plague
      or cholera:
 
      ‘gnus-gather-threads-by-subject’
           This function is the default gathering function and looks at
           ‘Subject’s exclusively.
 
      ‘gnus-gather-threads-by-references’
           This function looks at ‘References’ headers exclusively.
 
      If you want to test gathering by ‘References’, you could say
      something like:
 
           (setq gnus-summary-thread-gathering-function
                 'gnus-gather-threads-by-references)