1. 18 Oct, 2020 18 commits
    • Stefan Kangas's avatar
      Prefer Lisp version of describer in help--describe-vector · 420023a6
      Stefan Kangas authored
      * 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.
      420023a6
    • Stefan Kangas's avatar
      Remove C version of substitute-command-keys · ef5a604f
      Stefan Kangas authored
      * 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.
      ef5a604f
    • Stefan Kangas's avatar
      Prefer Lisp version of describe-map-tree · 8a144131
      Stefan Kangas authored
      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.
      8a144131
    • Stefan Kangas's avatar
      Improve substitute-command-keys performance · afde53cd
      Stefan Kangas authored
      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.
      afde53cd
    • Stefan Kangas's avatar
      Translate describe_vector to Lisp · 5ad2bb0f
      Stefan Kangas authored
      * 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.
      5ad2bb0f
    • Stefan Kangas's avatar
      Translate describe_map to Lisp · 647b1c51
      Stefan Kangas authored
      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.
      647b1c51
    • Stefan Kangas's avatar
      Translate describe_map_tree to Lisp · afd31f9e
      Stefan Kangas authored
      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.
      afd31f9e
    • Stefan Kangas's avatar
      Add new Lisp implementation of substitute-command-keys · dcf9cd47
      Stefan Kangas authored
      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.
      dcf9cd47
    • Eli Zaretskii's avatar
    • Mattias Engdegård's avatar
      Strengthen js-mode indentation tests · 9bc5c016
      Mattias Engdegård authored
      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.
      9bc5c016
    • Lars Ingebrigtsen's avatar
      Fix a misleading comment in Freplace_match · b7dfae3a
      Lars Ingebrigtsen authored
      * src/search.c (Freplace_match): Fix a misleading comment
      (bug#42424).
      b7dfae3a
    • Lars Ingebrigtsen's avatar
      Document the new smiley value · a10a3d48
      Lars Ingebrigtsen authored
      * doc/misc/gnus.texi (Smileys): Document the emoji smiley value.
      a10a3d48
    • Lars Ingebrigtsen's avatar
      Fix up smiley emoji application to make it reversible · d9673472
      Lars Ingebrigtsen authored
      * lisp/gnus/smiley.el (smiley-region): Use text properties for the
      emojis instead of rewriting the message.
      d9673472
    • Adam Sjøgren's avatar
      Add support for emojis i smiley.el · 99079126
      Adam Sjøgren authored
      * 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).
      99079126
    • Stefan Kangas's avatar
      Make nxml-newline-and-indent argument optional · a67fed2e
      Stefan Kangas authored
      * lisp/nxml/nxml-mode.el (nxml-newline-and-indent): Make argument
      optional to conform to 'comment-line-break-function'.  (Bug#40193)
      a67fed2e
    • Stefan Kangas's avatar
      Minor improvements to emacsclient man page · 82991265
      Stefan Kangas authored
      * doc/man/emacsclient.1: Make flag descriptions into full sentences to
      be more consistent.
      82991265
    • Stefan Kangas's avatar
      Convert manual js indent tests to unit tests · 335e3cf8
      Stefan Kangas authored
      * 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.
      335e3cf8
    • Stefan Kangas's avatar
      f287fb45
  2. 17 Oct, 2020 22 commits
    • Stefan Kangas's avatar
      * lisp/progmodes/mixal-mode.el: Fix typos. · 073e72e4
      Stefan Kangas authored
      073e72e4
    • Jose Antonio Ortega Ruiz's avatar
      Set jao@gnu.org as maintainer of mixal-mode.el · 3b5a43f3
      Jose Antonio Ortega Ruiz authored
      * lisp/progmodes/mixal-mode.el: Set jao@gnu.org as maintainer of
      mixal-mode.el.  (Bug#44037)
      3b5a43f3
    • Stefan Kangas's avatar
      Use lexical-binding in mixal-mode.el · 20728195
      Stefan Kangas authored
      * lisp/progmodes/mixal-mode.el: Use lexical-binding.  (Bug#44037)
      20728195
    • Juri Linkov's avatar
      Extend next-error-message face to the edge of the window (bug#32676) · 06933245
      Juri Linkov authored
      * lisp/simple.el (next-error-message): Add ':extend t' to this face.
      (next-error-message-highlight): Put overlay over the newline as well.
      06933245
    • J. Scott Berg's avatar
      Fix bad dimensions of initial frame on VcXsrv · 2c0cd900
      J. Scott Berg authored
      * 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
      2c0cd900
    • Glenn Morris's avatar
      Merge from origin/emacs-27 · 7dd52bfd
      Glenn Morris authored
      18c0e20b (origin/emacs-27) Improve documentation of 'Info-hide-note...
      7dd52bfd
    • Glenn Morris's avatar
      ; Merge from origin/emacs-27 · ffd201c4
      Glenn Morris authored
      The following commit was skipped:
      
      47b8a1c7 * admin/release-process: Add note to update files from ups...
      ffd201c4
    • Glenn Morris's avatar
      Merge from origin/emacs-27 · 3ac3a650
      Glenn Morris authored
      65078e0a * lisp/info.el (Info-hide-note-references): Doc fix.  (Bug...
      30305b54 Make lisp/progmodes/js.el dependent on CC Mode in the Make...
      c37b2a9b Yet another fix for 'set-minibuffer-message'
      72dd9119 Fix posn-at-x-y in builds --without-x
      ace25f20 Clarify the seq-reduce documentation
      7d598e28 Make tramp-completion-reread-directory-timeout obsolete (B...
      2c31ce18 Fix 'message' when there's active minibuffer on another frame
      
      # Conflicts:
      #	doc/misc/tramp.texi
      #	etc/NEWS
      3ac3a650
    • Glenn Morris's avatar
      ; Merge from origin/emacs-27 · 2f450542
      Glenn Morris authored
      The following commit was skipped:
      
      f539ee90 * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc t...
      2f450542
    • Mattias Engdegård's avatar
    • Protesilaos Stavrou's avatar
      Update Modus themes' NEWS entry · 00c4d982
      Protesilaos Stavrou authored
      * etc/NEWS: Reword entry about new 'modus-operandi' and
      'modus-vivendi' themes.  Include reference to their manual.
      00c4d982
    • Jose Antonio Ortega Ruiz's avatar
      mixal-mode: add missed instructions · 9513aa8f
      Jose Antonio Ortega Ruiz authored
      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
      9513aa8f
    • Stefan Kangas's avatar
      Base bookmark-bmenu-mode on tabulated-list-mode (Bug#39293) · 61e51fee
      Stefan Kangas authored
      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'.
      61e51fee
    • Eli Zaretskii's avatar
    • Mattias Engdegård's avatar
      Add aid for finding missing dynamic variable declarations · 3217ae6e
      Mattias Engdegård authored
      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.
      3217ae6e
    • Stefan Kangas's avatar
      39a00145
    • Stefan Kangas's avatar
      8b6b4176
    • Eli Zaretskii's avatar
      Improve documentation of 'Info-hide-note-references' in info.texi · 18c0e20b
      Eli Zaretskii authored
      * doc/misc/info.texi (Help-Xref): Improve the wording.
      (Emacs Info Variables): Update the documentation of
      'Info-hide-note-references'.  (Bug#44043)
      18c0e20b
    • Pierre Neidhardt's avatar
      New shell-mode command to narrow to the command under point · 9eb61be2
      Pierre Neidhardt authored
      * 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).
      9eb61be2
    • Lars Ingebrigtsen's avatar
      Make woman ignore the new groff kerning operators · bee50664
      Lars Ingebrigtsen authored
      * lisp/woman.el (woman-decode-region): Ignore the new groff
      kerning operators (bug#42219).
      bee50664
    • Lars Ingebrigtsen's avatar
      Fix `browse-url-of-dired' · ea47bcc4
      Lars Ingebrigtsen authored
      * lisp/net/browse-url.el (browse-url-emacs): Make the
      `browse-url-of-dired' command work again after the browse-emacs
      changes (bug#42429).
      ea47bcc4
    • Lars Ingebrigtsen's avatar
      Avoid infloop in which-function-mode when a vc file has changed · 0a3d584c
      Lars Ingebrigtsen authored
      * lisp/vc/diff-mode.el (diff-find-source-location): Avoid warnings
      when called from which-function-mode and the file has changed
      (bug#42818).
      0a3d584c