notmuch clon
Find a file
Jonas Bernoulli 2ca941163d emacs: make headings outline-minor-mode compatible
`outline-minor-mode' treats comments that begin with three or more
semicolons as headings.  That makes it very convenient to navigate
code and to show/hide parts of a file.

Elips libraries typically have four top-level sections, e.g.:

;;; notmuch.el --- run notmuch within emacs...
;;; Commentary:...
;;; Code:...
;;; notmuch.el ends here

In this package many libraries lack a "Commentary:" section, which is
not optimal but okay for most libraries, except major entry points.

Depending on how one chooses to look at it, the "... ends here" line
is not really a heading that begins a section, because it should never
have a "section" body (after all it marks eof).

If the file is rather short, then I left "Code:" as the only section
that contains code.  Otherwise I split the file into multiple sibling
sections.  The "Code:" section continues to contain `require' and
`declare-function' forms and other such "front matter".

If and only if I have split the code into multiple sections anyway,
then I also added an additional section named just "_" before the
`provide' form and shortly before the "...end here" line.  This
section could also be called "Back matter", but I feel it would be
distracting to be that explicit about it.  (The IMO unnecessary but
unfortunately still obligatory "... ends here" line is already
distracting enough as far as I am concerned.)

Before this commit some libraries already uses section headings, some
of them consistently.  When a library already had some headings, then
this commit often sticks to that style, even at the cost inconsistent
styling across all libraries.

A very limited number of variable and function definitions have to be
moved around because they would otherwise end up in sections they do
not belong into.

Sections, including but not limited to their heading, can and should
be further improved in the future.
2021-01-13 07:10:27 -04:00
bindings version: bump 0.31.3 2020-12-25 11:42:12 -04:00
compat emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
completion emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
contrib notmuch-mutt: replace shell pipeline with internal pipe processing 2020-08-12 20:40:46 -03:00
debian debian: skip gdb based tests on hppa 2020-12-26 15:14:27 -04:00
devel nmbug: notmuch-report: set both background and foreground colors 2021-01-09 11:29:07 -04:00
doc docs: drop deprecated doxygen TCL_SUBST flag 2021-01-09 11:25:43 -04:00
emacs emacs: make headings outline-minor-mode compatible 2021-01-13 07:10:27 -04:00
lib lib/config: delay setting talloc destructor 2020-12-23 19:48:43 -04:00
packaging Use https instead of http where possible 2016-06-05 08:32:17 -03:00
parse-time-string emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
performance-test emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
test emacs: make headings outline-minor-mode compatible 2021-01-13 07:10:27 -04:00
util emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
vim Fix typos as found by codespell 2018-03-24 20:09:54 -03:00
.dir-locals.el .dir-locals.el: Set variables for correct "shell" mode 2020-08-09 21:14:36 -03:00
.gitignore .gitignore: Sort using sort-lines 2020-08-09 21:14:36 -03:00
.mailmap create .mailmap file (for git shortlog/blame) 2016-07-29 06:01:44 +09:00
.travis.yml test: drop upgrade from v1 tests 2020-07-11 17:20:09 -03:00
AUTHORS AUTHORS: update for 0.31 2020-08-22 09:13:26 -03:00
command-line-arguments.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
command-line-arguments.h cli: run uncrustify 2019-06-14 07:41:27 -03:00
configure configure: replace $(realpath emacs) with $(cd emacs && pwd -P) 2020-10-21 07:01:37 -03:00
COPYING Use https instead of http where possible 2016-06-05 08:32:17 -03:00
COPYING-GPL-3 Use https instead of http where possible 2016-06-05 08:32:17 -03:00
debugger.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
gmime-filter-reply.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
gmime-filter-reply.h cli: run uncrustify 2019-06-14 07:41:27 -03:00
hooks.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
INSTALL doc: update install suggestions for fedora derivatives 2020-07-03 06:31:54 -03:00
Makefile support make goals after initial {'', dist, data}clean goal(s) 2017-03-10 08:04:27 -04:00
Makefile.global debian: don't tag debian tag at release is made. 2020-12-25 12:28:31 -04:00
Makefile.local debian: don't tag debian tag at release is made. 2020-12-25 12:28:31 -04:00
mime-node.c smime: Pass PKCS#7 envelopedData to node_decrypt_and_verify 2020-05-22 22:11:51 -03:00
NEWS NEWS: add news for 0.31.3 2020-12-25 12:28:31 -04:00
notmuch-client.h cli/dump: define GZPUTS and use it in notmuch-dump 2020-04-13 17:14:50 -03:00
notmuch-compact.c cli: convert notmuch_bool_t to stdbool 2017-10-09 22:24:02 -03:00
notmuch-config.c Drop deprecated/unused crypto.gpg_path 2020-02-19 08:17:49 -04:00
notmuch-count.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-dump.c cli/dump: replace use of gzprintf with gzputs for config values 2020-04-13 17:14:50 -03:00
notmuch-insert.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-new.c cli/new: replace newly deprecated n_m_has_maildir_flag 2020-07-20 08:54:42 -03:00
notmuch-reindex.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-reply.c cli/reply: Ignore PKCS#7 wrapper parts when replying 2020-05-22 22:11:25 -03:00
notmuch-restore.c cli/restore: gzerror() after gzclose_r() is a use after free 2020-04-16 07:52:42 -03:00
notmuch-search.c cli/search: replace deprecated notmuch_message_get_flag 2020-07-18 11:03:28 -03:00
notmuch-setup.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-show.c cli/show: replace deprecated notmuch_message_get_flag 2020-07-18 11:03:28 -03:00
notmuch-tag.c cli: convert notmuch_bool_t to stdbool 2017-10-09 22:24:02 -03:00
notmuch-time.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch.c cli: run uncrustify 2019-06-14 07:41:27 -03:00
query-string.c Use https instead of http where possible 2016-06-05 08:32:17 -03:00
README Use https instead of http where possible 2016-06-05 08:32:17 -03:00
README.rst Use https instead of http where possible 2016-06-05 08:32:17 -03:00
sprinter-json.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter-sexp.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter-text.c sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
sprinter.h sprinter: change integer method to use int64_t 2020-02-13 19:10:42 -04:00
status.c status: add print_status_gzbytes 2020-04-13 17:14:50 -03:00
tag-util.c Fix typos 2020-08-09 21:14:36 -03:00
tag-util.h Fix typos 2020-08-09 21:14:36 -03:00
version.txt version: bump 0.31.3 2020-12-25 11:42:12 -04:00

Notmuch - thread-based email index, search and tagging.

Notmuch is a system for indexing, searching, reading, and tagging
large collections of email messages in maildir or mh format. It uses
the Xapian library to provide fast, full-text search with a convenient
search syntax.

Notmuch is free software, released under the GNU General Public
License version 3 (or later).

Building notmuch
----------------
See the INSTALL file for notes on compiling and installing notmuch.

Running notmuch
---------------
After installing notmuch, start by running "notmuch setup" which will
interactively prompt for configuration information such as your name,
email address, and the directory which contains your mail archive to
be indexed. You can change any answers later by running "notmuch
setup" again or by editing the .notmuch-config file in your home
directory.

With notmuch configured you should next run "notmuch new" which will
index all of your existing mail. This can take a long time, (several
hours) if you have a lot of email, (hundreds of thousands of
files). When new mail is delivered to your mail archive in the future,
you will want to run "notmuch new" again. These runs will be much
faster as they will only index new messages.

Finally, you can prove to yourself that things are working by running
some command-line searches such as "notmuch search
from:someone@example.com" or "notmuch search subject:topic". See
"notmuch help search-terms" for more details on the available search
syntax.

The command-line search output is not expected to be particularly
friendly for day-to-day usage. Instead, it is expected that you will
use an email interface that builds on the notmuch command-line tool or
the libnotmuch library.

Notmuch installs a full-featured email interface for use within
emacs. To use this, first add the following line to your .emacs file:

	(autoload 'notmuch "notmuch" "Notmuch mail" t)

Then, either run "emacs -f notmuch" or execute the command "M-x
notmuch" from within a running emacs.

If you're interested in a non-emacs-based interface to notmuch, then
please join the notmuch community. Various other interfaces are
already in progress, (an interface within vim, a curses interface,
graphical interfaces based on evolution, and various web-based
interfaces). The authors of these interfaces would love further
testing or contribution. See contact information below.

Contacting users and developers
-------------------------------
The website for Notmuch is:

	https://notmuchmail.org

The mailing list address for the notmuch community is:

	notmuch@notmuchmail.org

We welcome any sort of questions, comments, kudos, or code there.

Subscription is not required, (but if you do subscribe you'll avoid
any delay due to moderation). See the website for subscription
information.

There is also an IRC channel dedicated to talk about using and
developing notmuch:

	IRC server:	irc.freenode.net
	Channel:	#notmuch