| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code was used to linearize the EIEIO class hierarchy, since
it results in saner results than things like BFS or DFS.
By moving it to `subr.el` we get to benefit from that same
advantage both in `cl--class-allparents` and
in `derived-mode-all-parents`.
* lisp/subr.el (merge-ordered-lists): New function.
(derived-mode-all-parents): Use it to improve parent ordering.
* lisp/emacs-lisp/eieio-core.el (eieio--c3-candidate)
(eieio--c3-merge-lists): Delete functions, replaced by
`merge-ordered-lists`.
(eieio--class-precedence-c3): Use `merge-ordered-lists`.
* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents):
Use `merge-ordered-lists` to improve parent ordering.
* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents): Delete function.
(cl--pcase-mutually-exclusive-p): Use `cl--class-allparents` instead.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Until now multiple inheritance wasn't really used, but some ad-hoc
code went a bit beyond the normal uses of the mode hierarchy.
Use the new multiple inheritance code to replace that ad-hoc code,
thereby eliminating basically all remaining direct uses of the
`derived-mode-parent` property.
CEDET had its own notion of mode hierrchy using `derived-mode-parent`
as well as its own `mode-local-parent` property set via
`define-child-mode`.
`derived-mode-add-parents` lets us reimplement `define-child-mode`
such that CEDET can now use the normal API functions.
* lisp/locate.el (locate-mode): Use `derived-mode-add-parents`.
* lisp/cedet/mode-local.el (get-mode-local-parent): Declare obsolete.
(mode-local-equivalent-mode-p, mode-local-use-bindings-p): Make them
obsolete aliases.
(mode-local--set-parent): Rewrite to use `derived-mode-add-parents`.
Declare as obsolete.
(mode-local-map-mode-buffers): Use `derived-mode-p`.
(mode-local-symbol, mode-local--activate-bindings)
(mode-local--deactivate-bindings, mode-local-describe-bindings-2):
Use `derived-mode-all-parents`.
* lisp/cedet/srecode/table.el (srecode-get-mode-table):
* lisp/cedet/srecode/find.el (srecode-table, srecode-load-tables-for-mode)
(srecode-all-template-hash): Use `derived-mode-all-parents`.
* lisp/cedet/srecode/map.el (srecode-map-entries-for-mode):
* lisp/cedet/semantic/db.el (semanticdb-equivalent-mode):
Use `provided-mode-derived-p` now that it obeys `define-child-mode`.
|
| |
|
|
|
|
|
|
| |
Add the ability for a major mode to declare "extra parents" in
addition to the one from which it inherits.
* lisp/subr.el (derived-mode-add-parents): New function.
(derived-mode-all-parents): Adjust accordingly.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Try and avoid using the `derived-mode-parent` property directly
and use the new API functions instead.
* lisp/emacs-lisp/derived.el (define-derived-mode):
Use `derived-mode-set-parent`.
* lisp/loadhist.el (unload--set-major-mode):
* lisp/info-look.el (info-lookup-select-mode):
* lisp/ibuf-ext.el (ibuffer-list-buffer-modes):
* lisp/files.el (dir-locals--get-sort-score):
* lisp/emacs-lisp/cl-generic.el (cl--generic-derived-specializers):
Use `derived-mode-all-parents`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most uses of the mode hierarchy don't really need to construct the
list, they just need to iterate over it. With single inheritance
we could do it just by jumping up from a mode to its parent,
but to support the upcoming multiple inheritance we'd need a more
complex and costly iterator.
Luckily, the inheritance graph is mostly static so we can cache
the list of all parents, making `derived-mode-all-parents` cheap
enough to be the basis of iteration and keeping the API very simple.
* lisp/subr.el (derived-mode-all-parents): Cache the result.
(derived-mode--flush): New function.
(derived-mode-set-parent): Use it.
|
| |
|
|
|
|
|
|
|
|
| |
The `derived-mode-parent` property should be an implementation detail,
so we can change it more easily. To that end, add functions to set and
query it.
* lisp/subr.el (derived-mode-all-parents): New function.
(provided-mode-derived-p): Use it.
(derived-mode-set-parent): New function.
|
| |
|
|
|
|
|
|
|
|
|
| |
* java/org/gnu/emacs/EmacsNative.java (shutDownEmacs):
* java/org/gnu/emacs/EmacsService.java (onDestroy): New
function. When invoked, call shut_down_emacs and await its
completion.
* src/android.c (android_shut_down_emacs, shutDownEmacs): New
functions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes bug#64646. Also refactor two functions to reduce
code duplication.
* lisp/emacs-lisp/comp.el (comp-spill-lap-function/symbol)
(comp-spill-lap-function/list): Add all functions found by the
byte compiler (including lambdas) to the native compiler's
context, thus making them be native compiled. Refactor to use
comp-intern-func-in-ctxt. Make comp-spill-lap-function/list
also compile closures.
* test/src/comp-resources/comp-test-funcs.el
(comp-tests-lambda-return-f2): New function
* test/src/comp-tests.el (comp-test-lambda-return2)
(comp-tests-free-fun-f2): New functions to test that internal
lambdas get native compiled.
|
| |
|
|
|
|
| |
* lisp/progmodes/project.el (project-remember-projects-under): Instead
of traversing the directories manually, re-use
`directory-files-recursively' to reduce complexity. (Bug#66649)
|
| |
|
|
|
| |
(minibuffer-visible-completions-map): Bind it to "RET".
https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00246.html
|
| |
|
|
|
|
|
| |
* lisp/simple.el (analyze-text-conversion): Save point in
old-point after auto-fill completes, so that point-moved is not
set if point remains intact subsequent to the execution of both
hooks.
|
| |
|
|
|
|
|
|
|
| |
Github-reference: https://github.com/joaotavora/eglot/discussions/1318
* doc/misc/eglot.texi (Quick Start): Reword.
(Starting Eglot): Reword.
* lisp/progmodes/eglot.el (eglot-ensure): Demote errors to warnings.
|
| | |
|
| |
|
|
|
|
|
| |
* etc/NEWS:
* lisp/minibuffer.el (completion-lazy-hilit)
(completion-lazy-hilit-fn, completion-lazy-hilit): Fix recently
added documentation.
|
| |
|
|
|
| |
Handle the case when lines with completion candidates are
interspersed with lines that contain group headings.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug#48841, bug#47711
The variable may be bound by the frontend to a non-nil around
completion-producing calls like completion-all-completions. See
completion-lazy-hilit docstring for more info.
* lisp/icomplete.el (icomplete-minibuffer-setup): Set completion-lazy-hilit.
(icomplete--render-vertical): Call completion-lazy-hilit.
(icomplete-completions): Call completion-lazy-hilit.
* lisp/minibuffer.el (completion-lazy-hilit): New variable.
(completion-lazy-hilit): New function.
(completion-lazy-hilit-fn): New variable.
(completion-pcm--regexp)
(completion--flex-score-last-md): New helper variables.
(completion--flex-score-1): New helper.
(completion-pcm--hilit-commonality): Use completion-lazy-hilit.
(completion--flex-adjust-metadata): Rework sorting code.
* etc/NEWS: Mention completion-lazy-hilit
|
| | |
|
| |
|
|
|
| |
* lisp/progmodes/ruby-ts-mode.el: Silence warning when requiring
file without a treesitter grammar.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* doc/lispref/frames.texi (Other Selections): Revise
documentation to match.
* lisp/term/android-win.el (android-secondary-selection): New
variable.
(android-primary-selection, android-get-clipboard-1)
(android-get-primary, gui-backend-get-selection)
(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
(gui-backend-set-selection): Update doc strings and code as is
proper.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/minibuffer.el (minibuffer-visible-completions): New defcustom.
(minibuffer-visible-completions-bind): New function.
(minibuffer-visible-completions-map): New defvar-keymap.
(minibuffer-mode): Set buffer-local minibuffer-completion-auto-choose
to nil for minibuffer-visible-completions.
(completing-read-default, completion-in-region-mode):
Use minibuffer-visible-completions to compose keymap
with minibuffer-visible-completions-map.
(minibuffer-next-completion): Add new arg VERTICAL,
and use next-line-completion.
(minibuffer-next-line-completion)
(minibuffer-previous-line-completion): New commands.
|
| |
|
|
| |
* lisp/calc/calc.el (calc-eval-error): Declare. (Bug#58801)
|
| |
|
|
|
|
|
| |
* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern): Use test
strings that are easier to mis-parse, for a more exacting test.
* (fz-make+zone, fz-make-zone): Declare pure.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/term/android-win.el (android-deactivate-mark-command):
New command.
(select-all, start-selecting-text, stop-selecting-text): Arrange
for commands manipulating the region to be executed when these
keys are registered.
* src/android.c (android_get_keysym_name): Return the keysym
name of each of the new keysyms introduced.
* src/androidterm.c (performContextMenuAction): Save special
keysyms into key events for the selectAll, startSelectingText
and stopSelectingText actions.
|
| |
|
|
|
|
|
|
|
|
| |
* lisp/progmodes/project.el (project-any-command): New command.
(project-prefix-map): Bind it to 'o'.
(project-switch-commands): Add entry for it here too.
(project-prefix-or-any-command): New command (bug#63648).
(project-switch-commands): Update the custom type to mention
'project-prefix-or-any-command' as well.
* etc/NEWS: Document the change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/erc/erc-stamp.el (erc-stamp--current-time): Ditch overriding
precedence of the `erc--ts' property in `:around' method because the
variable `erc-stamp--current-time' fills that role well enough.
(erc-stamp--current-datestamp-left): Remove unused variable.
(erc-stamp--insert-date-stamp-as-phony-message): Assume
`erc-timestamp-last-inserted-left' has already been assigned the
updated rendered stamp for the current time.
(erc-stamp--lr-date-on-pre-modify): Use the variable
`erc-stamp--current-time' instead of the `erc-ts' property to convey
an overriding time value for `erc-add-timestamp'. Set
`erc-timestamp-last-inserted-left' instead of fiddling with another
temporary variable to hack around these ill-fitting interfaces. Use
day-aligned time value for the `erc-ts' property assigned to date
stamps.
(erc-stamp--date-mode): New internal minor mode.
(erc-insert-timestamp-left-and-right): Defer to `erc-stamp--date-mode'
for setting up date-stamp specific hooks.
(erc-stamp--time-as-day): New function to "round" a date stamp to
start of local day.
(erc-stamp--setup): Defer to `erc-stamp--date-mode' for date-stamp
specific teardown. (Bug#60936)
* test/lisp/erc/erc-fill-tests.el
(erc-fill-tests--current-time-value): Change default value to nil.
(erc-stamp--current-time): New method for test cases.
(erc-fill-tests--insert-privmsg): Use realistic value for `unparsed'
slot.
(erc-fill-tests--wrap-populate): Bind
`erc-fill-tests--current-time-value' to 0. Don't mock the function
`erc-stamp--current-time' because doing so inhibits normal polymorphic
dispatch, which test cases rely on for delivering correct timestamp
values in varied contexts.
; * test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update.
; * test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update.
; * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/erc/erc-stamp.el (erc-stamp--allow-unmanaged): Improve doc
string.
(erc-stamp--permanent-cursor-sensor-functions): New variable to take
over the formerly provided `cursor-sensor-functions' aspect of the
flag `erc-stamp--allow-unmanaged'.
(erc-add-timestamp): Use
`erc-stamp--permanent-cursor-sensor-functions' instead of
`erc-stamp--allow-unmanaged' in guard condition.
(erc-munge-invisibility-spec): Use dedicated compatibility flag
`erc-stamp--permanent-cursor-sensor-functions' and forgo unnecessary
setup when it's non-nil. (Bug#60936)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/erc/erc-stamp.el
(erc-stamp--insert-date-stamp-as-phony-message): Ensure existing
user markers aren't displaced by date-stamp insertion.
* lisp/erc/erc.el (erc--insert-line-function): New function-valued
variable for overriding `insert'.
(erc-insert-line): Call `erc--insert-line-function', when non-nil, to
insert line specially.
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--on-insert-modify): New assertion helper
function.
(erc-scenarios-stamp--date-mode/left-and-right): New test.
(Bug#60936)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* lisp/erc/erc-stamp.el (erc-timestamp-format-left): Fix typo in doc
string and mention that changing the value mid-session requires
cycling the minor mode.
(erc-echo-timestamp-format): Add Custom :tag for choices.
(erc-stamp--date-format-end): Revise doc string.
(erc-stamp--format-date-stamp): Fix bug involving erroneous truncation
parameter for `substring' when `erc-timestamp-format-left' doesn't end
in a newline. Thanks to Emanuel Berg for catching this.
(erc-stamp-prepend-date-stamps-p) Revise doc string.
(erc-insert-timestamp-left-and-right): Add comment regarding
compatibility concession. (Bug#60936)
|
| |
|
|
|
|
|
|
|
|
| |
* lisp/erc/erc.el (erc--get-inserted-msg-bounds): Account for
`previous-single-property-change' returning a position adjacent to
that with an actual changed value. The prior attempt at addressing
this was insufficient.
* test/lisp/erc/erc-tests.el (erc--get-inserted-msg-bounds): New test.
; * test/lisp/erc/resources/base/local-modules/second.eld: Timeout.
; * test/lisp/erc/resources/base/local-modules/third.eld: Timeout.
|
| |
|
|
|
| |
* doc/misc/efaq.texi (Start Emacs maximized, Common requests): Fix
last change.
|
| |
|
|
|
|
|
|
|
| |
* doc/misc/efaq.texi (Start Emacs Maximized): Rename node from
"Fullscreen mode on MS-Windows". Make advice portable to other
platforms, and remove MS-Windows specific hacks.
Ref: https://lists.gnu.org/r/emacs-devel/2023-10/msg00733.html
Co-authored-by: David Hedlund <public@beloved.name>
|
| | |
|
| |
|
|
|
|
| |
* test/lisp/files-tests.el (files-tests--with-yes-or-no-p): Add macro.
(files-tests-save-buffer-read-only-file): Add test for writing to
write-protected files with `save-buffer'. (Bug#66546)
|
| |
|
|
|
| |
* lisp/net/eww.el (eww-suggest-uris): Bump it to 30.1 since it was
changed. (Bug#66926)
|
| |
|
|
|
|
|
|
| |
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--dest-mountpoint): Add lexical cookie.
Bug reported and fix suggested by Jens Schmidt
(https://lists.gnu.org/archive/html/emacs-devel/2023-10/msg00719.html)
|
| |\
| |
| |
| |
| |
| | |
The following commit was skipped:
33fae4b02d6 Suggest alternative reason for ERT test duplication error
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* lisp/emacs-lisp/ert.el (ert-set-test): Amend error message;
maybe the redefinition was caused by a file loaded twice.
(Bug#66782)
Suggested by Xiyue Deng.
(cherry picked from commit 425d23fbeaede81ab4f50b4073949cc1c8a3fbd0)
|
| |\ \
| |/
| |
| |
| |
| |
| | |
196def4fa64 Fix description of 'Package-Requires' library header
c1778432790 ; * doc/misc/tramp.texi (FUSE setup): Fix typo.
a64336cbb9c * lisp/emacs-lisp/cl-lib.el (cl--defalias): Improve&fix d...
da8b85b577d Add two docstrings in cl-lib.el
|
| | |
| |
| |
| |
| | |
* doc/lispref/tips.texi (Library Headers): Update the description
of the 'Package-Requires' header. (Bug#66677)
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| | |
* lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring)
(cl--defalias): Add docstrings. (Bug#66828)
|
| |\ \
| |/
| |
| |
| |
| |
| |
| |
| | |
The following commits were skipped:
41939127457 Fix Tramp (don't merge)
c22eeba8277 ; Fix typo
4f57af7fccd * doc/misc/tramp.texi (Traces and Profiles): Fix indentat...
ccaf801baad * doc/misc/tramp.texi (Traces and Profiles): Fix indentat...
|
| | |
| |
| |
| | |
* lisp/net/tramp.el (tramp-read-id-output): Identifiers can contain "-".
|
| | | |
|
| | | |
|
| | | |
|
| |\ \
| |/
| |
| |
| |
| |
| |
| | |
d5e5ea4e36b Fix guessing commands for zstandard archives in Dired
90db29aff86 Fix eglot.texi (JSONRPC objects in Elisp) example
5ef48ad6a37 ; Fix one author's name.
c4e9a6159a3 * doc/man/emacsclient.1: Fix --tramp option.
6dca3a8eab2 Improve `nsm-protocol-check--3des-cipher` docstring
|