~ubuntu-elisp/emacs/+git/master:scratch/shorthand-namespacing

Last commit made on 2020-09-21
Get this branch:
git clone -b scratch/shorthand-namespacing https://git.launchpad.net/~ubuntu-elisp/emacs/+git/master

Branch merges

Branch information

Name:
scratch/shorthand-namespacing
Repository:
lp:~ubuntu-elisp/emacs/+git/master

Recent commits

d8d196c... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Add a test for byte-compilation

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-byte-compile-a-file): New test.
(elisp-shorthand-load-a-file): Simplify.

ea9544d... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Shoosh byte-compiler in test/lisp/progmodes/elisp-mode-tests

* test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-generic-no-default)
(xref-elisp-generic-co-located-default)
(xref-elisp-generic-separate-default): Prefix local arguments with _.

8aa2276... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Integrate shorthand functionality into elisp-mode.el

Also rename the main variable to elisp-shorthands, from the
silly pleonastic shorthand-shorthands.

For some reason, I had to stick the new source-file loading functions
in lisp/international/mule.el, otherwise lisp/loadup.el wouldn't see
them. This should probably be fixed.

* lisp/shorthand.el: Remove.

* lisp/progmodes/elisp-mode.el (elisp--shorthand-load-wrapper):
Move here.

* src/lread.c (oblookup_considering_shorthand, syms_of_lread):
Rename variable elisp-shorthand, from shorthand-shorthands.

* test/lisp/shorthand-tests.el: Remove.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string)
(elisp-shorthand-load-a-file): New tests.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file

* lisp/loadup.el (load-source-file-function): Set to
  load-with-shorthands-and-code-conversion.

* lisp/international/mule.el (hack-elisp-shorthands): Move here.
(load-with-shorthands-and-code-conversion): And here.

dd7d0e4... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Robustify checking of shorthand-shorthands

* src/lread.c (oblookup_considering_shorthand): Maybe warn when we
find fishy shorthand-shorthands.

cfc00db... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Move most of the shorthand implementation to C code

This very likely isn't the final form of the implementation. For one,
the reader is much slower and allocates a Lisp string for every atom
read, regardless if its already interned or not, which perhaps has the
potential to be catastrophic in terms of GC.

But it passes the tests.

The solution to this, is probably to simplify the semantics of
shorthand-shorthands. Instead of making it a regexp-to-longhand
alist, make it just prefix-to-longhand. Then we wouldn't need to call
Fstring_match in oblookup_considering_shorthand, meaning we wouldn't
need a Lisp string there.

* lisp/shorthand.el (shorthand-shorthands): Move to C code.
(shorthand--expand-shorthand): Remove.
(shorthand-read-wrapper): Remove.
(shorthand-intern-soft-wrapper): Remove.
(read, intern-soft): No longer advise.

* src/lread.c:
(read1, Fintern, Fintern_soft, Funintern): Use
oblookup_considering_shorthand.
(oblookup_considering_shorthand): New helper.
(syms_of_lread): Declare shorthand-shorthands.

01d7325... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

First Elisp version of lisp/shorthand.el, failing some tests

* lisp/shorthand.el: New file

* test/lisp/shorthand-tests.el: New file

df2ae3f... by =?utf-8?b?Sm/Do28gVMOhdm9yYQ==?= <email address hidden>

Don't let docless variables hide function signature

In Elisp mode, ElDoc will try the variable's docstring first, then the
function signature. If the former doesn't have one, don't hide the
latter.

* lisp/progmodes/elisp-mode.el (elisp-eldoc-var-docstring): If no
symbol docstring, don't declare any.

1eae0a8... by Stefan Kangas

Add new option flyspell-correct-on-mouse-3

* lisp/textmodes/flyspell.el
(flyspell-correct-on-mouse-3): New option to bind
'flyspell-correct-word' to 'mouse-3'.
(flyspell--set-correct-on-mouse-3): New function to update option.
(flyspell-mode): Update 'flyspell-mouse-map' if above option is
set.
* doc/emacs/fixit.texi (Spelling): Mention the new option.
* etc/NEWS: Announce the new option.

a0653f8... by Stefan Kangas

Remove redundant :group args from flyspell.el

* lisp/textmodes/flyspell.el: Remove redundant :group args.

b06ef8d... by Stefan Kangas

Mark XEmacs compat alias as obsolete

* lisp/subr.el (user-original-login-name): Mark as obsolete. This
XEmacs compat alias was obsoleted even by XEmacs, so there is no point
in keeping it around.