summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Prefer Lisp version of describer in help--describe-vectorscratch/substitute-command-keysStefan Kangas2020-10-182-70/+13
| | | | | | | | * src/keymap.c (Fhelp__describe_vector): * lisp/help.el (describe-map): Use Lisp versions of describe_command and describe_translation. * src/keymap.c (describe_command, describe_translation): Remove. (describe_vector_basic): New function.
* Remove C version of substitute-command-keysStefan Kangas2020-10-184-673/+3
| | | | | | | | | | | | | * src/doc.c (Fsubstitute_command_keys_old): Remove. (syms_of_doc): Remove defsubr for Fsubstitute_command_keys_old. * src/keymap.c (describe_map, describe_map_tree) (describe_map_compare, describe_map_elt): Remove. * src/keymap.h: Remove 'describe_map_tree'. * test/lisp/help-tests.el (with-substitute-command-keys-test) (help-tests-substitute-command-keys/compare) (help-tests-substitute-command-keys/compare-all): Don't test the C version of 'substitute-command-keys' removed above.
* Prefer Lisp version of describe-map-treeStefan Kangas2020-10-181-26/+63
| | | | | | | | | This is a prerequisite to remove the old C functions, and gives a measured 3 ms slowdown on my machine, from 0.27s to 0.30s per call to describe-buffer-bindings (average over 50 calls). * src/keymap.c (Fdescribe_buffer_bindings): Call Lisp function describe-map-tree instead of C function describe_map_tree.
* Improve substitute-command-keys performanceStefan Kangas2020-10-182-70/+107
| | | | | | | | | | | | | | | | | | | | | The previous conversion of describe_vector from C to Lisp for the keymap and char table case lead to an unacceptable performance hit. Moving back to the C version, as we do here, makes this function around 50 times faster. The Lisp version of `substitute-command-keys' was benchmarked using the form `(documentation 'dired-mode)', which now takes less than 8 ms on my machine. This is around 16 times slower than the previous C version. Thanks to Stefan Monnier for helpful pointers on benchmarking. * src/keymap.c (Fhelp__describe_vector): New defun to expose describe_vector to Lisp for keymaps and char tables. (syms_of_keymap): New defsubr for Fhelp__describe_vector. * lisp/help.el (describe-map): Use above defun instead of Lisp version. (help--describe-vector): Remove defun; keep it commented out for now.
* Translate describe_vector to LispStefan Kangas2020-10-182-25/+73
| | | | | | | * lisp/help.el (help--describe-vector): New Lisp implementation of describe_vector. * src/keymap.c (Fdescribe_vector_internal): Remove defun. (syms_of_keymap): Remove defsubr for Fdescribe_vector_internal.
* Translate describe_map to LispStefan Kangas2020-10-183-60/+338
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Third step in converting substitute-command-keys to Lisp. * lisp/help.el (describe-map): New Lisp version of describe_map. (help--describe-map-compare, help--describe-translation) (help--describe-command, help--shadow-lookup): New helper functions for describe-map. (help--keymaps-seen, help--previous-description-column): New variables. * src/keymap.c (Fkeymap__get_keyelt): New defun to expose get_keyelt to Lisp. (Fdescribe_map_tree_old, Fdescribe_map): Remove defuns. (Fdescribe_vector_internal): New defun to expose describe_vector to Lisp in a way usable by describe-map. (syms_of_keymap): New defsubrs for Fkeymap__get_keyelt and Fdescribe_vector_internal. Remove defsubrs for Fdescribe_map_tree_old and Fdescribe_map. Remove 'help--keymaps-seen'. * test/lisp/help-tests.el (help-tests-substitute-command-keys/shadow): Extend test. (help-tests-substitute-command-keys/test-mode) (help-tests-substitute-command-keys/compare-all) (help-tests-describe-map-tree/no-menu-t) (help-tests-describe-map-tree/no-menu-nil) (help-tests-describe-map-tree/mention-shadow-t) (help-tests-describe-map-tree/mention-shadow-nil) (help-tests-describe-map-tree/partial-t) (help-tests-describe-map-tree/partial-nil): New tests.
* Translate describe_map_tree to LispStefan Kangas2020-10-182-4/+116
| | | | | | | | | | | | This is the second step in converting substitute-command-keys to Lisp. * lisp/help.el (describe-map-tree): New Lisp version of describe_map_tree. (substitute-command-keys): Update to use above function. * src/keymap.c (Fdescribe_map): New defun to expose describe_map to Lisp. * src/keymap.c (syms_of_keymap): New variable 'help--keymaps-seen'; a temporary kludge planned for removal. New defsubr for Fdescribe_map.
* Add new Lisp implementation of substitute-command-keysStefan Kangas2020-10-188-109/+419
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is only the first step towards a full Lisp implementation, and does not remove the old C code. On the contrary, it is partly based on using the old C code, which is to be replaced in steps. This also makes it easy to test that it produces the same output as the old. * src/doc.c (Fsubstitute_command_keys_old): Rename from Fsubstitute_command_keys. (Fget_quoting_style): New defun to expose text_quoting_style to Lisp. (syms_of_doc): Expose above symbols. * lisp/help.el (substitute-command-keys): New Lisp version of substitute-command-keys. (Bug#8951) * src/keymap.c (Fdescribe_map_tree): New defun to expose describe_map_tree to Lisp. (syms_of_keymap): New defsubr for Fdescribe_map_tree. * src/keyboard.c (help_echo_substitute_command_keys): * src/doc.c (Fdocumentation, Fdocumentation_property): * src/print.c (print_error_message): * src/syntax.c (Finternal_describe_syntax_value): Fix calls to use new Lisp implementation of substitute-command-keys. * test/src/doc-tests.el: Remove file. * test/lisp/help-tests.el: Add tests for substitute-command-keys copied from above file.
* ; * etc/NEWS: Call out the new variable 'shr-offer-extend-specpdl'.Eli Zaretskii2020-10-181-0/+8
|
* Strengthen js-mode indentation testsMattias Engdegård2020-10-181-0/+13
| | | | | | | | Test not only that the indentation engine is idempotent but that it will indent a file to the expected shape from scratch. * test/lisp/progmodes/js-tests.el (js-tests--remove-indentation): New. (js-deftest-indent): Extend test.
* Fix a misleading comment in Freplace_matchLars Ingebrigtsen2020-10-181-1/+1
| | | | | * src/search.c (Freplace_match): Fix a misleading comment (bug#42424).
* Document the new smiley valueLars Ingebrigtsen2020-10-182-4/+5
| | | | * doc/misc/gnus.texi (Smileys): Document the emoji smiley value.
* Fix up smiley emoji application to make it reversibleLars Ingebrigtsen2020-10-181-1/+5
| | | | | * lisp/gnus/smiley.el (smiley-region): Use text properties for the emojis instead of rewriting the message.
* Add support for emojis i smiley.elAdam Sjøgren2020-10-182-20/+60
| | | | | | | | * lisp/gnus/smiley.el (smiley-style): Add emoji tag. (smiley-emoji-regexp-alist): New defcustom. (smiley-update-cache, smiley-region): Support emoji (non-image) replacement (bug#43889).
* Make nxml-newline-and-indent argument optionalStefan Kangas2020-10-181-1/+1
| | | | | * lisp/nxml/nxml-mode.el (nxml-newline-and-indent): Make argument optional to conform to 'comment-line-break-function'. (Bug#40193)
* Minor improvements to emacsclient man pageStefan Kangas2020-10-181-12/+12
| | | | | * doc/man/emacsclient.1: Make flag descriptions into full sentences to be more consistent.
* Convert manual js indent tests to unit testsStefan Kangas2020-10-1814-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/progmodes/js-tests.el (ert-x): Require. (js-deftest-indent): New macro. Use it to define tests for indenting the below files. * test/manual/indent/js-chain.js: * test/manual/indent/js-indent-align-list-continuation-nil.js: * test/manual/indent/js-indent-init-dynamic.js: * test/manual/indent/js-indent-init-t.js: * test/manual/indent/js.js: * test/manual/indent/jsx-align-gt-with-lt.jsx: * test/manual/indent/jsx-comment-string.jsx: * test/manual/indent/jsx-indent-level.jsx: * test/manual/indent/jsx-quote.jsx: * test/manual/indent/jsx-self-closing.jsx: * test/manual/indent/jsx-unclosed-1.jsx: * test/manual/indent/jsx-unclosed-2.jsx: * test/manual/indent/jsx.jsx: Move from here... * test/lisp/progmodes/js-resources/js-chain.js: * test/lisp/progmodes/js-resources/js-indent-align-list-continuation-nil.js: * test/lisp/progmodes/js-resources/js-indent-init-dynamic.js: * test/lisp/progmodes/js-resources/js-indent-init-t.js: * test/lisp/progmodes/js-resources/js.js: * test/lisp/progmodes/js-resources/jsx-align-gt-with-lt.jsx: * test/lisp/progmodes/js-resources/jsx-comment-string.jsx: * test/lisp/progmodes/js-resources/jsx-indent-level.jsx: * test/lisp/progmodes/js-resources/jsx-quote.jsx: * test/lisp/progmodes/js-resources/jsx-self-closing.jsx: * test/lisp/progmodes/js-resources/jsx-unclosed-1.jsx: * test/lisp/progmodes/js-resources/jsx-unclosed-2.jsx: * test/lisp/progmodes/js-resources/jsx.jsx: ...to here.
* * lisp/progmodes/ld-script.el: Use lexical-binding.Stefan Kangas2020-10-181-1/+1
|
* * lisp/progmodes/mixal-mode.el: Fix typos.Stefan Kangas2020-10-181-1/+3
|
* Set jao@gnu.org as maintainer of mixal-mode.elJose A Ortega Ruiz2020-10-181-1/+1
| | | | | * lisp/progmodes/mixal-mode.el: Set jao@gnu.org as maintainer of mixal-mode.el. (Bug#44037)
* Use lexical-binding in mixal-mode.elStefan Kangas2020-10-181-1/+1
| | | | * lisp/progmodes/mixal-mode.el: Use lexical-binding. (Bug#44037)
* Extend next-error-message face to the edge of the window (bug#32676)Juri Linkov2020-10-171-2/+2
| | | | | * lisp/simple.el (next-error-message): Add ':extend t' to this face. (next-error-message-highlight): Put overlay over the newline as well.
* Fix bad dimensions of initial frame on VcXsrvJ. Scott Berg2020-10-171-6/+7
| | | | | | | * src/xterm.c (handle_one_xevent) [USE_GTK]: Don't obey ConfigureNotify events if the frame is not visible. (Bug#44002) Copyright-paperwork-exempt: yes
* Merge from origin/emacs-27Glenn Morris2020-10-171-17/+25
|\ | | | | | | 18c0e20bea (origin/emacs-27) Improve documentation of 'Info-hide-note...
| * Improve documentation of 'Info-hide-note-references' in info.texiEli Zaretskii2020-10-171-17/+25
| | | | | | | | | | | | * doc/misc/info.texi (Help-Xref): Improve the wording. (Emacs Info Variables): Update the documentation of 'Info-hide-note-references'. (Bug#44043)
* | ; Merge from origin/emacs-27Glenn Morris2020-10-170-0/+0
|\ \ | |/ | | | | | | | | The following commit was skipped: 47b8a1c767 * admin/release-process: Add note to update files from ups...
| * * admin/release-process: Add note to update files from upstream.Stefan Kangas2020-10-171-0/+11
| | | | | | | | (cherry picked from commit 86dd9d12aa5a273da2efd4ce8c6e35ae343f1494)
* | Merge from origin/emacs-27Glenn Morris2020-10-1710-71/+122
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | 65078e0a76 * lisp/info.el (Info-hide-note-references): Doc fix. (Bug... 30305b543d Make lisp/progmodes/js.el dependent on CC Mode in the Make... c37b2a9b42 Yet another fix for 'set-minibuffer-message' 72dd911981 Fix posn-at-x-y in builds --without-x ace25f2066 Clarify the seq-reduce documentation 7d598e281d Make tramp-completion-reread-directory-timeout obsolete (B... 2c31ce18ea Fix 'message' when there's active minibuffer on another frame # Conflicts: # doc/misc/tramp.texi # etc/NEWS
| * * lisp/info.el (Info-hide-note-references): Doc fix. (Bug#44043)Eli Zaretskii2020-10-171-4/+5
| |
| * Make lisp/progmodes/js.el dependent on CC Mode in the Makefile.Alan Mackenzie2020-10-161-0/+6
| | | | | | | | | | | | | | This will prevent version mismatches between compile time and runtime versions. This fixes bug #43037. * lisp/Makefile.in: Make js.el dependent on cc-{defs,engine,mode}.elc.
| * Yet another fix for 'set-minibuffer-message'Eli Zaretskii2020-10-161-39/+44
| | | | | | | | | | | | * lisp/minibuffer.el (set-minibuffer-message): Handle the case of separate minibuffer-only frame. Suggested by Gregory Heytings <ghe@sdf.org>.
| * Fix posn-at-x-y in builds --without-xEli Zaretskii2020-10-162-7/+48
| | | | | | | | | | | | | | | | | | * src/keyboard.c (make_lispy_position): Don't exclude the window_or_frame = frame case from TTY-only builds. Reported by Jared Finder <jared@finder.org>. * doc/lispref/commands.texi (Click Events): Document the format of POSITION in click events on the frame's internal border.
| * Clarify the seq-reduce documentationLars Ingebrigtsen2020-10-152-5/+12
| | | | | | | | | | | | | | * doc/lispref/sequences.texi (Sequence Functions): Ditto. * lisp/emacs-lisp/seq.el (seq-reduce): Clarify the order of the arguments (bug#43995).
| * Make tramp-completion-reread-directory-timeout obsolete (Bug#43932)Michael Albinus2020-10-123-17/+7
| | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (File name completion, Frequently Asked Questions): Remove `tramp-completion-reread-directory-timeout'. (Bug#43932) * etc/NEWS: Mention tramp-completion-reread-directory-timeout as obsolete. * lisp/net/tramp.el (tramp-completion-reread-directory-timeout): Make it obsolete.
| * Fix 'message' when there's active minibuffer on another frameGregory Heytings2020-10-111-1/+2
| | | | | | | | | | | | | | | | * lisp/minibuffer.el (set-minibuffer-message): Don't reuse the active minibuffer for displaying messages unless the active minibuffer is on the same frame as the selected window. Copyright-paperwork-exempt: yes
* | ; Merge from origin/emacs-27Glenn Morris2020-10-170-0/+0
|\ \ | |/ | | | | | | | | The following commit was skipped: f539ee9042 * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc t...
| * * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc tweakStefan Monnier2020-10-101-0/+4
| | | | | | | | | | | | Try and clarify the meaning of `init-value`. (cherry picked from commit 46c0f28c0e4e212687e90ec0ecb239d994105a19)
* | * etc/NEWS: Mention new lexical binding conversion aid.Mattias Engdegård2020-10-171-0/+7
| |
* | Update Modus themes' NEWS entryProtesilaos Stavrou2020-10-171-3/+5
| | | | | | | | | | * etc/NEWS: Reword entry about new 'modus-operandi' and 'modus-vivendi' themes. Include reference to their manual.
* | mixal-mode: add missed instructionsJose A. Ortega Ruiz2020-10-171-4/+38
| | | | | | | | | | | | | | Synchronises with latest released GNU MDK 1.2.11 * mixal-mode.el (mixal-operation-codes-alist): Add missed instructions: SLB,SRB,JAE,JAO,JXE,JXO
* | Base bookmark-bmenu-mode on tabulated-list-mode (Bug#39293)Stefan Kangas2020-10-173-194/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewriting bookmark-bmenu-mode to be based on 'tabulated-list-mode' allows us to greatly simplify the code in several cases. In addition, we get some features for free, such as sorting by column. The only functional step backwards is that we no longer support the optional "inline" header line, a bookmark.el-specific feature to have a header without using 'header-line-format'. This feature is believed to be not very useful or widely used. * lisp/bookmark.el (tabulated-list): Require. (bookmark-bmenu-mode): Inherit from 'tabulated-list-mode' instead of 'special-mode' and make the necessary changes to support that. (bookmark-bmenu-mode-map): Inherit from 'tabulated-list-mode-map' instead of 'special-mode-map'. Remove now duplicate key bindings. (bookmark-bmenu--revert): New function to show the bookmark list using 'tabulated-list-mode'. (bookmark-bmenu-list): Simplify by using above new function. (bookmark-bmenu-bookmark): Adapt to 'tabulated-list-mode'. (bookmark-bmenu--name-predicate) (bookmark-bmenu--file-predicate): New functions used by 'tabulated-list-mode' to sort. (bookmark-bmenu-set-header): Redefine as obsolete function alias for 'tabulated-list-init-header'. (bookmark-bmenu-toggle-filenames, bookmark-bmenu-show-filenames) (bookmark-bmenu-hide-filenames, bookmark-bmenu-mark) (bookmark-bmenu-mark-all, bookmark-bmenu-unmark-all) (bookmark-bmenu-delete-all, bookmark-bmenu-unmark) (bookmark-bmenu-delete, bookmark-bmenu-delete-backwards): Simplify now that we can depend on 'tabulated-list-mode' to do more work. (bookmark-bmenu-use-header-line) (bookmark-bmenu-inline-header-height): Declare variables relating to the now unsupported "inline" header obsolete. (bookmark-bmenu-ensure-position) (bookmark-bmenu-execute-deletions): Remove code to handle "inline" header. * test/lisp/bookmark-tests.el (bookmark-test-bmenu-edit-annotation/show-annotation) (bookmark-test-bmenu-unmark, bookmark-test-bmenu-mark): Update tests for minor changes when using 'tabulated-list-mode'.
* | ; * etc/NEWS: Move 'narrow-to-prompt' entry to "Shell" section.Eli Zaretskii2020-10-171-5/+7
| |
* | Add aid for finding missing dynamic variable declarationsMattias Engdegård2020-10-172-2/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Find lexical use of variables that are dynamically declared in other files by recording 'defvar' declarations in files that can be read in by the compiler in a second compilation. This is particularly useful when converting code to use lexical-binding. The facility is controlled by setting environment variables: EMACS_GENERATE_DYNVARS -- set to non-empty to generate a .dynvars file corresponding to each .elc. EMACS_DYNVARS_FILE -- set to the name of a .dynvars file to use as defvar information during compilation, enabling the new warnings. * lisp/emacs-lisp/bytecomp.el (byte-compile--known-dynamic-vars) (byte-compile--seen-defvars): New variables. (byte-compile-warning-types): Add lexical-dynamic warning. (byte-compile--load-dynvars, byte-compile--warn-lexical-dynamic): New functions. * lisp/emacs-lisp/bytecomp.el (byte-compile-file, byte-compile--declare-var) (byte-compile-lambda, byte-compile-bind): Add dynamic variable loads, dumps and checks. * doc/lispref/variables.texi (Converting to Lexical Binding): Document.
* | * test/lisp/mail/rfc822-tests.el: New file.Stefan Kangas2020-10-171-0/+83
| |
* | * lisp/url/url-vars.el: Use lexical-binding.Stefan Kangas2020-10-171-1/+1
| |
* | New shell-mode command to narrow to the command under pointPierre Neidhardt2020-10-172-0/+48
| | | | | | | | | | | | | | | | * lisp/shell.el (shell--prompt-end-position) (shell--prompt-begin-position): Helper functions. * lisp/shell.el (shell-narrow-to-prompt): New command and keystroke (bug#41784).
* | Make woman ignore the new groff kerning operatorsLars Ingebrigtsen2020-10-171-0/+6
| | | | | | | | | | * lisp/woman.el (woman-decode-region): Ignore the new groff kerning operators (bug#42219).
* | Fix `browse-url-of-dired'Lars Ingebrigtsen2020-10-171-4/+12
| | | | | | | | | | | | * lisp/net/browse-url.el (browse-url-emacs): Make the `browse-url-of-dired' command work again after the browse-emacs changes (bug#42429).
* | Avoid infloop in which-function-mode when a vc file has changedLars Ingebrigtsen2020-10-171-1/+4
| | | | | | | | | | | | * lisp/vc/diff-mode.el (diff-find-source-location): Avoid warnings when called from which-function-mode and the file has changed (bug#42818).
* | Fix narrow-to-defun in f90-modeLars Ingebrigtsen2020-10-171-19/+22
| | | | | | | | | | * lisp/progmodes/f90.el (f90-beginning-of-subprogram): Make narrow-to-defun work better (bug#44042).