Files
emacs/lisp
João Távora 949295ae1a Extend electric-layout-mode to handle more complex layouts (bug#33794)
Entries in electric-layout-rules can specify multiple
newline-related actions which are executed in order of appearance.

Also, have it play nice with electric-pair-mode when inserting a
newlines, particularly with electric-pair-open-newline-between-pairs.

Entries in electric-layout-rules can also be functions.  Among other
things, the logic behind electric-pair-open-newline-between-pairs
could now be moved to electric-layout-mode, but this commit doesn't do
that yet.

This change was motivated by bug#33794 and is an alternative solution
to the problem reported in that bug.

* lisp/electric.el (electric-layout-rules): Adjust docstring.
(electric-layout-post-self-insert-function): Call
electric-layout-post-self-insert-function-1.
(electric-layout-post-self-insert-function-1): Rename from
electric-layout-post-self-insert-function.  Redesign.
(electric-layout-local-mode): New minor mode.

* test/lisp/electric-tests.el (electric-layout-int-main-kernel-style)
(electric-layout-int-main-allman-style)
(electric-modes-in-c-mode-with-self-insert-command)
(electric-pair-mode-newline-between-parens)
(electric-layout-mode-newline-between-parens-without-e-p-m)
(electric-layout-mode-newline-between-parens-without-e-p-m-2): New
tests.
(plainer-c-mode): New helper.
2019-01-02 12:55:16 +00:00
..
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 07:24:58 -05:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 18:47:22 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00
2019-01-01 01:01:13 +00:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2018-12-31 17:57:29 -08:00
2019-01-01 01:01:13 +00:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.