summaryrefslogtreecommitdiff
path: root/etc
Commit message (Collapse)AuthorAge
* ; * etc/NEWS: Announce user-level change in dictionary.el.Eli Zaretskii10 days
|
* * lisp/imenu.el (imenu-flatten): New defcustom (bug#70846).Juri Linkov10 days
| | | | | | | | | | | (imenu-level-separator): Adjust the docstring. (imenu--flatten-index-alist): New function revived from the initial implementation of this package. (imenu-choose-buffer-index): Use imenu--flatten-index-alist when imenu-flatten is non-nil. (imenu-buffer-menubar): Remove obsolete variable. * doc/emacs/programs.texi (Imenu): Document imenu-flatten.
* Document a problem with Microsoft SwiftKeyPo Lu10 days
| | | | | * etc/PROBLEMS (Runtime problems specific to Android): Document incompatibility with Microsoft Swiftkey.
* More Tramp optional methodsMichael Albinus12 days
| | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Inline methods) <krlogin, ksu>: (External methods) <fcp, nc>: These are optional methods. * etc/NEWS: Mention more optional Tramp methods. * lisp/net/tramp-androidsu.el (tramp-enable-androidsu-method): Use proper regexp for `tramp-default-user-alist'. * lisp/net/tramp-sh.el (tramp-enable-nc-method) (tramp-enable-ksu-method, tramp-enable-krlogin-method) (tramp-enable-fcp-method): New defuns. Move respective configurations there. * lisp/net/tramp.el (tramp-enable-method): Implement completion for interactive use. * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults) (tramp-test03-file-name-host-rules): Extend tests.
* * etc/NEWS: Elaborate `type` declare entry and regroup.Mattias Engdegård13 days
|
* Add Tramp method "apptainer"Michael Albinus13 days
| | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Top, Configuration): Add "Optional methods". (Optional methods): New section. (Inline methods) <androidsu, toolbox, flatpak>: These are optional methods. (Inline methods) <apptainer>: Add. * etc/NEWS: New Tramp method "apptainer". Some Tramp methods are optional. Fix typos. * lisp/net/tramp-androidsu.el (tramp-enable-androidsu-method): New defun. Call it when `system-type' is `android'. * lisp/net/tramp-container.el (tramp-apptainer-program): New defcustom. (tramp-apptainer-method): New defconst. (tramp-apptainer--completion-function) (tramp-enable-toolbox-method, tramp-enable-flatpak-method) (tramp-enable-apptainer-method): New defuns. * lisp/net/tramp.el (tramp-enable-method): New defun. * test/lisp/net/tramp-tests.el (tramp--test-container-p): Add "apptainer". (tramp--test-supports-processes-p): Extend function.
* ; * etc/NEWS: Move 'Miscellaneous' subtopics last.Mattias Engdegård2024-05-05
|
* Retract lexical cookie source load warningMattias Engdegård2024-05-05
| | | | | | | | | | | | | | | On balance it seems likely that the warning would annoy more people than it would help, so let them deal with any actual problems when the default is changed instead. See discussion at: https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00250.html * src/lread.c (string_suffix_p, warn_missing_cookie, Fload) (Feval_buffer): * lisp/international/mule.el (load-with-code-conversion): * lisp/startup.el (command-line--load-script): * etc/NEWS: Revert all changes, except for the generalised `lisp_file_lexical_cookie` which may prove useful in the future.
* ; Improve documentation of a recent changeEli Zaretskii2024-05-05
| | | | | * lisp/progmodes/project.el (project-files-relative-names): * etc/NEWS: Improve documentation of 'project-files-relative-names'.
* New variable 'project-files-relative-names'Dmitry Gutov2024-05-05
| | | | | | | | | | | | | | | | | | | | | | * lisp/progmodes/project.el (project-files-relative-names): New variable (bug#69233). (project--files-in-directory): Honor it. (project--vc-list-files): Here too. (project-find-regexp): Use it to improve performance. (project-or-external-find-regexp): Add a TODO. (project-find-file): Use it here too. (project--read-file-cpd-relative, project--read-file-absolute): Try to handle file lists with absolute and relative files names. (project-find-file-in): Set default-directory, so relative names are interpreted correctly. * lisp/progmodes/xref.el (xref-matches-in-files): Consider that the first in FILES can be a relative file name. * test/lisp/progmodes/project-tests.el (project-find-regexp): New test. * etc/NEWS: Mention it.
* Locate error source of ExceptionGroup in Python shellshynur2024-05-04
| | | | | | | | | | The Python shell recognizes the line containing a file path and a line number when an exception is raised up to the top-level, in order to locate the source of error. It's supposed to recognize the built-in ExceptionGroup as well. (Bug#70653) * lisp/progmodes/python.el (python-shell-compilation-regexp-alist): Take the single leading vertical line into account. * etc/NEWS: Announce this change.
* Only issue lexical cookie warning for elisp filesMattias Engdegård2024-05-04
| | | | | | | | * src/lread.c (string_suffix_p): New. (warn_missing_cookie): Suppress warning for files not ending in ".el", except ".emacs". * etc/NEWS: Update accordingly, and mention how the warning can be suppressed.
* ; * etc/NEWS: Fix last change.Eli Zaretskii2024-05-04
|
* ; * etc/NEWS: Fix a recently-added entry.Eli Zaretskii2024-05-04
|
* Warn when loading .el files without lexical-binding declarationMattias Engdegård2024-05-03
| | | | | | | | | | | | | | | | | | This corresponds to the byte-compiler warning for the same issue, here emitted for files that aren't compiled but loaded from source. It should make the planned change to enable lexical binding by default in Emacs 31 go smoother. * src/lread.c (lexical_cookie_t): New type. (lisp_file_lexically_bound_p): Renamed to... (lisp_file_lexical_cookie): ...this, with the return value retyped. * src/lread.c (warn_missing_cookie): New. (Fload): Warn when loading source file and cookie missing. (Feval_buffer): Add LOADING arg; warn when set and cookie missing. * lisp/international/mule.el (load-with-code-conversion): * lisp/startup.el (command-line--load-script): Call eval-buffer with LOADING arg set. * etc/NEWS: Announce.
* Make the buffer displayed by tab-bar-select-restore-windows internalJuri Linkov2024-05-02
| | | | | * lisp/tab-bar.el (tab-bar-select-restore-windows): Make the buffer " *Old buffer %s*" internal with the leading space in its name.
* ; Fix last changeEli Zaretskii2024-05-02
| | | | | | * etc/NEWS: Fix wording of a recently-added item. * doc/lispref/functions.texi (Declare Form): Fix markup.
* Merge branch 'lisp-func-type-decls' into 'master'Andrea Corallo2024-05-02
|\
| * etc/NEWS (Function type declaration): Mark it +++.Andrea Corallo2024-05-02
| |
| * * etc/NEWS (Function type declaration): Add entry.Andrea Corallo2024-05-01
| |
* | New function 'python-shell-send-block' for python-modeLin Sun2024-05-02
| | | | | | | | | | | | | | | | | | | | * lisp/progmodes/python.el (python-shell-send-block): New function. * test/lisp/progmodes/python-tests.el (python-test--shell-send-block): Test case for the new function. * etc/NEWS: Document 'python-shell-send-block'. (Bug#70609)
* | Support hints in the :repeat keyword of defvar-keymap for repeat-modeJuri Linkov2024-05-02
| | | | | | | | | | | | | | | | * lisp/keymap.el (defvar-keymap): Add :hints to the :repeat keyword. Put the property 'repeat-hint' on the command symbol. * lisp/repeat.el (repeat-echo-message-string): Show hint strings defined with the property 'repeat-hint' on the command symbol (bug#70576).
* | Fix first appearance records for some misdated functionsMattias Engdegård2024-04-30
| | | | | | | | | | | | | | | | | | * etc/NEWS.unknown: Add approximate version records for defsubst, mark, nreverse, let*, rassq, >=, transpose-sexps, buffer-modified-p, current-column, downcase, previous-line, catch, throw, and count-lines, which all were given much more recent introduction versions by describe-function.
* | ; etc/NEWS.unknown: Quote command invocation.Michael Albinus2024-04-30
|/
* Declare the variable `rx-constituents` obsolete.Mattias Engdegård2024-04-29
| | | | | | | | | It has been effectively obsolete since Emacs 27, when the modern extension mechanism was introduced. * lisp/emacs-lisp/rx.el (rx-constituents): Make obsolete. * test/lisp/emacs-lisp/rx-tests.el (rx-constituents): Suppress warning. * etc/NEWS: Announce.
* Add NEWS.unknown file to correct versions of introductionMattias Engdegård2024-04-29
| | | | | | | | | | | | It is not intended for the human reader, but to give less wrong versions of first appearance displayed by `describe-function` or `describe-variable` that would otherwise be derived from a notice in a more recent NEWS* file. It is better to add items to this file than changing historical NEWS* files when the actual version of introduction is not known. * etc/NEWS.unknown: New file. Add entry for `nthcdr`.
* Add `drop` as alias for `nthcdr`Mattias Engdegård2024-04-29
| | | | | | | | | | It's a common name for this function and symmetric with respect to `take`. It's also a lot less awkward to type and say. * lisp/subr.el (drop): New alias. * doc/lispref/lists.texi (List Elements): Document. Mention the equation tying `take` and `drop` together. * etc/NEWS: Announce.
* Adapt eww to touch screens, mice and text conversionPo Lu2024-04-29
| | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/input.texi (On-Screen Keyboards): Update conditions for displaying the virtual keyboard when t-s-d-k is enabled. * etc/NEWS (Announce): Document changes. * lisp/net/eww.el (eww-check-text-conversion): New function. (eww-mode): Install it as a local post-command-hook. (eww-submit-map, eww-submit-file, eww-checkbox-map): Bind suitable commands to mouse-2. (eww-form-submit, eww-form-checkbox, eww-form-file) (eww-tag-select): Disguise inserted forms as buttons, that touch event translation may prefer their bindings to mouse-2 over mouse-1. (eww-form-text, eww-tag-textarea): Insert field properties as well. (eww-select-file, eww-toggle-checkbox, eww-submit): New argument EVENT, to whose position point is set. * lisp/touch-screen.el (touch-screen-handle-point-up): Trivial adjustments to the criteria for selecting mouse commands and displaying the on screen keyboard.
* Fix NEWS entries and documentation for underline stylesPo Lu2024-04-29
| | | | | | | * doc/lispref/display.texi (Face Attributes): * etc/NEWS: Revise to not mislead users as to where these attributes are available.
* Use a dedicated type to represent interpreted-function valuesStefan Monnier2024-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change `function` so that when evaluating #'(lambda ...) we return an object of type `interpreted-function` rather than a list starting with one of `lambda` or `closure`. The new type reuses the existing PVEC_CLOSURE (nee PVEC_COMPILED) tag and tries to align the corresponding elements: - the arglist, the docstring, and the interactive-form go in the same slots as for byte-code functions. - the body of the function goes in the slot used for the bytecode string. - the lexical context goes in the slot used for the constants of bytecoded functions. The first point above means that `help-function-arglist`, `documentation`, and `interactive-form`s don't need to distinguish interpreted and bytecode functions any more. Main benefits of the change: - We can now reliably distinguish a list from a function value. - `cl-defmethod` can dispatch on `interactive-function` and `closure`. Dispatch on `function` also works now for interpreted functions but still won't work for functions represented as lists or as symbols, of course. - Function values are now self-evaluating. That was alrready the case when byte-compiled, but not when interpreted since (eval '(closure ...)) signals a void-function error. That also avoids false-positive warnings about "don't quote your lambdas" when doing things like `(mapcar ',func ...)`. * src/eval.c (Fmake_interpreted_closure): New function. (Ffunction): Use it and change calling convention of `Vinternal_make_interpreted_closure_function`. (FUNCTIONP, Fcommandp, eval_sub, funcall_general, funcall_lambda) (Ffunc_arity, lambda_arity): Simplify. (funcall_lambda): Adjust to new representation. (syms_of_eval): `defsubr` the new function. Remove definition of `Qclosure`. * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): Change calling convention and use `make-interpreted-closure`. * src/data.c (Fcl_type_of): Distinguish `byte-code-function`s from `interpreted-function`s. (Fclosurep, finterpreted_function_p): New functions. (Fbyte_code_function_p): Don't be confused by `interpreted-function`s. (Finteractive_form, Fcommand_modes): Simplify. (syms_of_data): Define new type symbols and `defsubr` the two new functions. * lisp/emacs-lisp/cl-print.el (cl-print-object) <interpreted-function>: New method. * lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent to be `closure`. (oclosure--fix-type, oclosure-type): Simplify. (oclosure--copy, oclosure--get, oclosure--set): Adjust to new representation. * src/callint.c (Fcall_interactively): Adjust to new representation. * src/lread.c (bytecode_from_rev_list): * lisp/simple.el (function-documentation): * lisp/help.el (help-function-arglist): Remove the old `closure` case and adjust the byte-code case so it handles `interpreted-function`s. * lisp/emacs-lisp/cl-preloaded.el (closure): New type. (byte-code-function): Add it as a parent. (interpreted-function): Adjust parent (the type itself was already added earlier by accident). * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Adjust to new representation. (byte-compile): Use `interpreted-function-p`. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust to new representation. (side-effect-free-fns): Add `interpreted-function-p` and `closurep`. * src/profiler.c (trace_hash, ffunction_equal): Simplify. * lisp/profiler.el (profiler-function-equal): Simplify. * lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): Use `interpreted-function-p`; adjust to new representation; and take advantage of the fact that function values are now self-evaluating. * lisp/emacs-lisp/lisp-mode.el (closure): Remove `lisp-indent-function` property. * lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to new representation. * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): Use `interpreted-function-p`. * lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Add `closurep` and `interpreted-function-p`. * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust to more precise type info in `describe-function`. * test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d--render-entries): Use `interpreted-function-p`. * test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-f4, vk-f5): Don't hardcode function values. * doc/lispref/functions.texi (Anonymous Functions): Don't suggest that function values are lists. Reword "self-quoting" to reflect the fact that #' doesn't return the exact same object. Update examples with the new shape of the return value. * doc/lispref/variables.texi (Lexical Binding): * doc/lispref/lists.texi (Rearrangement): * doc/lispref/control.texi (Handling Errors): Update examples to reflect new representation of function values.
* Merge from origin/emacs-29Eli Zaretskii2024-04-27
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f37f01b5046 Fix a typo in Introduction to Emacs Lisp (bug#70571). d8687fd6cd8 Fix last change 494dfd9cf2b Fix indentation of if/else in 'csharp-ts-mode' (bug#70345) 1cc6322e612 ; * etc/PROBLEMS: Document crashes due to tree-sitter ABI... 42766f95e5c * build-aux/make-info-dir: Avoid bashism (bug#70484). 81476fa19e8 Improve documentation of selection and navigation in *xre... 2a533514929 Fix Widget manual typos, markup and omissions (bug#70502) 90be3015b4d ; Document bookmark fringe mark in the user manual afd0b548fcc Fix python-ts-mode built-in functions and attributes (bug... dc720decc3a Fix markup and indexing in the Calendar chapter of user m... f593bf79a91 Fix the user manual for `calendar-time-zone-style' aed2b7a3d82 Avoid assertion violations in 'push_prefix_prop' c929532b469 Remove ert-equal-including-properties from manual e3aae5fd385 ; Document 'filtered-frame-list'
| * ; * etc/PROBLEMS: Document crashes due to tree-sitter ABI (bug#70438).Eli Zaretskii2024-04-25
| |
* | Add support for colored and styled underlines on tty framesMohsin Kaleem2024-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/dispextern.h (face, face_underline_type, syms_of_xfacse) (internal-set-lisp-face-attribute) (gui_supports_face_attributes_p): Add definitions for new underline styles of Double-line, Dots and Dashes. Rename FACE_UNDER_LINE and FACE_UNDER_WAVE to make definitions consistent. Delete tty_underline_p from the face struct and use just underline going forward. Add a flag to check whether styled underlines are available. * lisp/cus-face.el (custom-face-attributes): Add entries for Double-line, Dots and Dashes so they can be set through `customize'. * src/termchar.c (tty_display_info): Add an entry for the escape sequence to set the underline style and color on terminal frames. * src/term.c (init_tty, tty_capable_p, turn_on_face): Read and save the underline style escape sequence from the Smulx termcap (alternatively if the Su flag is set use a default sequence). Allow checking for support of styled underlines in the current terminal frame. Output the necessary escape sequences to activate a styled underline on turn_on_face; this is currently only used for the new special underline styles, a default straight underline will still use the "us" termcap. Output escape sequence to set underline color when set in the face and supported by the tty. Save a default value for this sequence on init_tty when styled underlines are supported. * src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face) (map_tty_color): Assert whether styled underlines are supported by the current terminal on display-supports-face-attributes-p checks. Populate the correct underline style and color in the face spec when realizing a face. Allow map_tty_color to map underline colors alongside foreground and background. The interface of map_tty_color was amended to allow the caller to supply the underline color instead of accessing it through the face attributes. (bug#62994) * src/xterm.c (x_draw_glyph_string): Updated to use renamed FACE_UNDERLINE_SINGLE and FACE_UNDERLINE_WAVE face_underline_type enumerations.
* | Gnus: Add back end for Atom feeds (nnatom)Daniel Semyonov2024-04-23
| | | | | | | | | | | | | | | | | | * lisp/gnus/gnus.el (gnus-valid-select-methods): Add entry for nnatom. * lisp/gnus/nnfeed.el: New file implementing an abstract web feed back end. * lisp/gnus/nnatom.el: New file implementing a back end for Atom feeds. * doc/misc/gnus.texi (Browsing the Web, Back End Interface): * etc/NEWS (Gnus): Document nnatom and nnfeed.
* | Add treesit-add-font-lock-rulesYuan Fu2024-04-21
| | | | | | | | | | | | This function should help users customize font-lock rules. * lisp/treesit.el (treesit-add-font-lock-rules): New function.
* | New function treesit-parser-changed-rangesYuan Fu2024-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add a new field last_changed_ranges to tree-sitter parser object. - Add a new function treesit-parser-changed-ranges * doc/lispref/parsing.texi (Using Parser): Add the function in tree-sitter manual. * src/treesit.c (treesit_get_changed_ranges): New function, refactored out of treesit_call_after_change_functions. (treesit_call_after_change_functions): Pull out treesit_get_changed_ranges. (treesit_ensure_parsed): Save the changed ranges to the parser object. (make_treesit_parser): Initialize the new parser field last_changed_ranges. (Ftreesit_parser_changed_ranges): New function. (Qtreesit_unparsed_edits): New error. * src/treesit.h (Lisp_TS_Parser): New field.
* | Don't nest date stamp insertions in erc-stampF. Jason Park2024-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/ERC-NEWS: Don't mention certain insertion-adjacent hooks being suppressed for date stamps, which is no longer true. * lisp/erc/erc-common.el (erc--solo): New utility function. * lisp/erc/erc-fill.el (erc-fill-wrap): Don't move last-message marker when encountering a date stamp. * lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Restore `erc-stamp--date-stamps' on reconnect and rejoin. (erc-stamp--insert-date-hook): Fix erroneous doc string. (erc-stamp--date): New struct type. (erc-stamp--deferred-date-stamp): New internal variable to pass state between hook members. (erc-stamp--date-stamps): New internal variable to store a reference to all inserted timestamps. (erc-stamp--propertize-left-date-stamp): Don't hide messages because this function runs on `erc-insert-modify-hook'. Prefer doing so later, in `erc-insert-post-hook'. (erc-stamp--find-insertion-point): New helper function. (erc-stamp--insert-date-stamp-as-phony-message): Remove. (erc-stamp--lr-date-on-pre-modify): Remove function. Portions of body now appear in `erc-stamp--defer-date-insertion-on-post-modify'. (erc-stamp--defer-date-insertion-on-post-modify) (erc-stamp--defer-date-insertion-on-post-insert) (erc-stamp--defer-date-insertion-on-post-send): New functions, although the first incorporates parts of the now defunct `erc-stamp--lr-date-on-pre-modify'. (erc-stamp--date-mode): Update hook-member functions. (erc-stamp-prepend-date-stamps-p): Revise doc. (erc-insert-timestamp-left-and-right): Remove code to initialize a date stamp in place through a nested call to `erc-display-message'. Instead, "pre-render" date stamp and stash it for retrieval by the function `erc-stamp--defer-date-insertion-on-post-modify'. (erc-stamp--setup): Kill variables `erc-stamp--deferred-date-stamp' and `erc-stamp--date-stamps'. (erc-stamp--reset-on-clear): Remove trimmed stamps from `erc-stamp--date-stamps'. * lisp/erc/erc.el (erc--msg-props): Document `erc--hide' in doc string. (erc--with-inserted-msg): Remove unused macro. (erc--insert-line-splice-function): New variable. (erc--with-spliced-insertion): New macro. (erc--insert-line-function): Expand doc string. (erc--remove-from-prop-value-list): Tweak doc string. (erc--insert-before-markers-transplanting-hidden): New function. (erc--hide-message): Remember managed `invisible' prop value. Do so by recording them in the `erc--hide' "msg prop". (erc--delete-inserted-message, erc--delete-inserted-message-naively): Rename former to latter to emphasize that it's largely impractical for general use. (erc--ranked-properties): Add `erc--hide'. * test/lisp/erc/erc-button-tests.el (erc-button-tests--erc-button-alist--function-as-form): Use `erc-display-message' helper. * test/lisp/erc/erc-fill-tests.el (erc-fill-tests--insert-privmsg) (erc-fill-tests--wrap-populate, erc-fill-wrap-tests--merge-action) (erc-fill-line-spacing): Use `erc-display-message' wrappers to intercept `erc-timer-hook' modifications. * test/lisp/erc/erc-scenarios-match.el (erc-scenarios-match--invisible-stamp): Add convenience commands to `extended-command-history' when running interactively. * test/lisp/erc/erc-tests.el (erc--insert-before-markers-transplanting-hidden): New test. (erc--delete-inserted-message, erc--delete-inserted-message-naively): Update test name as well as namesake function in body. * test/lisp/erc/resources/erc-scenarios-common.el (erc-scenarios-common-with-cleanup): Validate `erc-stamp--date-stamps' members after every scenario test. (erc-scenarios-common--assert-date-stamps): New function. * test/lisp/erc/resources/erc-tests-common.el: Require `erc-stamp' atop file when compiling. (erc-tests--common-display-message) (erc-tests-common-display-message) (erc-tests-common-with-date-aware-display-message): New functions and macro for running `erc-display-message' while intercepting additions to `erc-timer-hook' made by date-stamp-related post-insertion hooks. (erc-tests-common-snapshot-compare): Insert expected output into its own buffer for easier review during interactive sessions. This change is unrelated to the rest of this commit. (Bug#60936)
* | Drag tabs to reorder buffers on the tab line.Juri Linkov2024-04-18
| | | | | | | | | | * lisp/tab-line.el (tab-line-mouse-move-tab): New command bound to [tab-line drag-mouse-1].
* | Flymake support for indicating errors in marginElias G. B. Perez2024-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add optional support for display flymake error in margin, this allow displaying error indicators in both graphical and terminal frames. * doc/misc/flymake.texi (Customizable variables) (Flymake error types): Document new margin indicator. * etc/NEWS: Announce the new Flymake user option for margin indicators. * lisp/progmodes/flymake.el (flymake-indicator-type) (flymake-margin-indicators-string, flymake-autoresize-margins) (flymake-margin-indicator-position): New user options. (flymake--original-margin-width): Add buffer-local variable for store original buffer margin width. (flymake-error, flymake-warning, flymake-note): Use new margin value. (flymake--indicator-overlay-spec): Rework and Rename from flymake--fringe-overlay-spec. (flymake--resize-margins): Add new function for resize margin width. (flymake--highlight-line, flymake-mode): Rework.
* | ; * etc/NEWS: Reindent and refill recently added entries.Eli Zaretskii2024-04-18
| |
* | Document earlier change in eglot-report-progressTheodor Thornhill2024-04-17
| | | | | | | | | | | | * lisp/progmodes/eglot.el (eglot-report-progress): Document the changed behavior. * etc/EGLOT-NEWS (https): Mention the change.
* | New keymap tab-line-mode-map and new tab order on tab-line (bug#69993)Juri Linkov2024-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/tab-line.el (tab-line-new-button-functions): New variable. (tab-line-tabs-function): Change the default value from 'tab-line-tabs-window-buffers' to the new option 'tab-line-tabs-fixed-window-buffers'. (tab-line-tabs-buffer-group-sort-function): Change the default value from nil to 'tab-line-tabs-buffer-group-sort-by-name'. (tab-line-tabs-buffer-group-sort-by-name): New function. (tab-line-tabs-fixed-window-buffers): New function. (tab-line-format-template): Use 'tab-line-new-button-functions'. (tab-line-mode-map, tab-line-switch-repeat-map): New keymaps.
* | Allow tabbing between widgets to skip inactive widgets (bug#70413)Stephen Berman2024-04-17
| | | | | | | | | | | | | | | | | | | | * doc/misc/widget.texi (Widgets and the Buffer, Customization): Document it. * etc/NEWS: Announce it. * lisp/wid-edit.el (widget-skip-inactive): New user option. (widget-tabable-at): Use it.
* | * lisp/emacs-lisp/lisp.el (forward-sexp-function): Set back to nil.Juri Linkov2024-04-17
| | | | | | | | | | (forward-sexp): Revert back to checking 'forward-sexp-function' for nil (bug#70426).
* | Add 'forward-sexp-default-function' to be used by 'treesit-forward-sexp'Juri Linkov2024-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/lisp.el (forward-sexp-default-function): New function with body from 'forward-sexp' (bug#68993). (forward-sexp-function): Change the default value from nil to 'forward-sexp-default-function'. (forward-sexp): Use either 'forward-sexp-function' or 'forward-sexp-default-function'. * lisp/treesit.el (treesit-forward-sexp): In nodes of type 'text' fall back to 'forward-sexp-default-function'. Improve docstring. * doc/lispref/positions.texi (List Motion): Fix pxref.
* | Add command 'list-keyboard-macros' that works like 'list-buffers'.Earl Hyatt2024-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command 'list-keyboard-macros' allows editing and re-arranging macros using 'tabulated-list-mode'. Existing keyboard macros can be duplicated or deleted. Macro counters and counter formats can take new values read from the minibuffer. Macro keys can be edited using 'edit-kbd-macro'. * doc/emacs/kmacro.texi (Kmacro Menu): Document the new command and the menu's commands. * etc/NEWS (Kmacro Menu Mode): Mention the new mode and command. * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-marked) (kmacro-menu-flagged): Add faces for marks and flags. * lisp/kmacro.el (kmacro-menu-mode-map, kmacro-menu-mode): Add mode and map. * lisp/kmacro.el (list-keyboard-macros, kmacro-menu): Add command. * lisp/kmacro.el (kmacro-menu--deletion-flags, kmacro-menu--marks) (kmacro-menu--id-kmacro, kmacro-menu--id-position, kmacro-menu--kmacros) (kmacro-menu--refresh, kmacro-menu--map-ids, kmacro-menu--replace-all) (kmacro-menu--replace-at, kmacro-menu--query-revert, kmacro-menu--assert-row) (kmacro-menu--propertize-keys, kmacro-menu--do-region) (kmacro-menu--marks-exist-p): Add utility functions of mode and commands. * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-flag-for-deletion) (kmacro-menu-unmark, kmacro-menu-unmark-backward) (kmacro-menu-unmark-all): Add commands for marks and flags. * lisp/kmacro.el (kmacro-menu-do-flagged-delete, kmacro-menu-do-copy) (kmacro-menu-do-delete): Add commands that modify the ring. * lisp/kmacro.el (kmacro-menu-edit-position, kmacro-menu-transpose) (kmacro-menu-edit-format, kmacro-menu-edit-counter) (kmacro-menu-edit-keys, kmacro-menu-edit-column): Add commands that modify a keyboard macro.
* | (define-globalized-minor-mode): Require the use of `run-mode-hooks`Stefan Monnier2024-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When `define-globalized-minor-mode` was introduced (Emacs-22), `run-mode-hooks` was brand new, so we could not expect all major modes to use it and we had to rely on brittle workarounds to try and approximate `after-change-major-mode-hook`. These workarounds have undesirable side effects, and (we hope) they're not needed any more now that virtually all major modes have been changed to use `run-mode-hooks` (or `define-derived-mode`). * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Rely only on `after-change-major-mode-hook`, remove the "cmhh" [typo for the intended "cmmh", BTW] workaround. * doc/lispref/modes.texi (Mode Hooks): Clarify the importance of `after-change-major-mode-hook` w.r.t `define-globalized-minor-mode`. (Defining Minor Modes): Rewrite the explanation of which buffers are affected, including adjusting it to the fact that `fundamental-mode` has used run `run-mode-hooks` for last 10 years.
* | Merge branch 'track-changes'Stefan Monnier2024-04-13
|\ \
| * | lisp/emacs-lisp/track-changes.el: New file (bug#70077)Stefan Monnier2024-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new package provides an API that is easier to use right than our `*-change-functions` hooks. The patch includes changes to `diff-mode.el` and `eglot.el` to make use of this new package. * lisp/emacs-lisp/track-changes.el: New file. * test/lisp/emacs-lisp/track-changes-tests.el: New file. * doc/lispref/text.texi (Tracking changes): New subsection. * lisp/progmodes/eglot.el: Require `track-changes`. (eglot--virtual-pos-to-lsp-position): New function. (eglot--track-changes): New var. (eglot--managed-mode): Use `track-changes-register` i.s.o `after/before-change-functions` when available. (eglot--track-changes-signal): New function, partly extracted from `eglot--after-change`. (eglot--after-change): Use it. (eglot--track-changes-fetch): New function. (eglot--signal-textDocument/didChange): Use it. * lisp/vc/diff-mode.el: Require `track-changes`. Also require `easy-mmode` before the `eval-when-compile`s. (diff-unhandled-changes): Delete variable. (diff-after-change-function): Delete function. (diff--track-changes-function): Rename from `diff-post-command-hook` and adjust to new calling convention. (diff--track-changes): New variable. (diff--track-changes-signal): New function. (diff-mode, diff-minor-mode): Use it with `track-changes-register`.
* | | Merge from origin/emacs-29Eli Zaretskii2024-04-13
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | f0300fb0597 ; Tweak "(emacs)Bug Reference" formatting/wording. ea62a14ea3b Fix display of vscrolled windows 4cefa3c0b1f ; * doc/emacs/files.texi (Backup): Clarify "saving" (bug#... db7b571aaaf ; Improve documentation of 'world-clock' 6a0bb7beae3 * doc/emacs/misc.texi (emacsclient Options): Suggest forw... 859b4227e3d Update go-ts-mode to support latest tree-sitter-go grammar 407e85ce139 Fix c++-ts-mode defun navigation (bug#65885) aca5064f128 ; Fix last change. 55aab2d4710 ; * etc/PROBLEMS: An entry about focus issues with XFCE (... 19cee16576e ; * doc/emacs/misc.texi (emacsclient Options): Fix typo. ... 2a41b6ba514 ; * src/filelock.c (Flock_file): Doc fix (bug#70216).