mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-02 11:21:42 +00:00
Merge from origin/emacs-29
7d3a144486
; Mention defface's and their :version tags in CONTRIBUTE.09c53b717d
* admin/notes/kind-communication: New file.31ca4e5501
; And another fix of CONTRIBUTE.d65499e790
; Another clarification in CONTRIBUTE.571ec583d6
; Clarify "ChangeLog entries" in CONTRIBUTE.e268231686
Don't skip links to "." and ".." in Dired when marking filese25d11314d
Pass unquoted filename to user-supplied MUSTMATCH predicate4749699370
* doc/lispref/parsing.texi (Retrieving Nodes): Improve do...d0673ea0d4
; * etc/PROBLEMS: Workaround for Windows key "stuck" (bug... * lisp/emacs-lisp/trace.el: * java/org/gnu/emacs/EmacsWindow.java (onDragEvent): Remove training whitespace.
This commit is contained in:
commit
22d500ce21
46
CONTRIBUTE
46
CONTRIBUTE
@ -115,9 +115,10 @@ mode after hiding the body of each entry.
|
||||
|
||||
Doc-strings should be updated together with the code.
|
||||
|
||||
New defcustom's should always have a ':version' tag stating the first
|
||||
Emacs version in which they will appear. Likewise with defcustom's
|
||||
whose value is changed -- update their ':version' tag.
|
||||
New defcustom's and defface's should always have a ':version' tag
|
||||
stating the first Emacs version in which they will appear. Likewise
|
||||
with defcustom's or defface's whose value is changed -- update their
|
||||
':version' tag.
|
||||
|
||||
Think about whether your change requires updating the manuals. If you
|
||||
know it does not, mark the NEWS entry with "---" before the entry. If
|
||||
@ -170,9 +171,9 @@ test 'out-of-tree' builds as well, i.e.:
|
||||
|
||||
** Commit messages
|
||||
|
||||
Ordinarily, a change you commit should contain a log entry in its
|
||||
commit message and should not touch the repository's ChangeLog files.
|
||||
Here is an example commit message (indented):
|
||||
Ordinarily, a changeset you commit should contain a description of the
|
||||
changes in its commit message and should not touch the repository's
|
||||
ChangeLog files. Here is an example commit message (indented):
|
||||
|
||||
Deactivate shifted region
|
||||
|
||||
@ -184,8 +185,9 @@ Here is an example commit message (indented):
|
||||
Deactivate the mark.
|
||||
|
||||
Occasionally, commit messages are collected and prepended to a
|
||||
ChangeLog file, where they can be corrected. It saves time to get
|
||||
them right the first time, so here are guidelines for formatting them:
|
||||
generated ChangeLog file, where they can be corrected. It saves time
|
||||
to get them right the first time, so here are guidelines for
|
||||
formatting them:
|
||||
|
||||
- Start with a single unindented summary line explaining the change;
|
||||
do not end this line with a period. If possible, try to keep the
|
||||
@ -194,9 +196,10 @@ them right the first time, so here are guidelines for formatting them:
|
||||
contexts.
|
||||
|
||||
If the summary line starts with a semicolon and a space "; ", the
|
||||
commit message will be ignored when generating the ChangeLog file.
|
||||
Use this for minor commits that do not need separate ChangeLog
|
||||
entries, such as changes in etc/NEWS.
|
||||
commit message will be skipped and not added to the generated
|
||||
ChangeLog file. Use this for minor commits that do not need to be
|
||||
mentioned in the ChangeLog file, such as changes in etc/NEWS, typo
|
||||
fixes, etc.
|
||||
|
||||
- After the summary line, there should be an empty line.
|
||||
|
||||
@ -211,8 +214,9 @@ them right the first time, so here are guidelines for formatting them:
|
||||
enforced by a commit hook.
|
||||
|
||||
- If only a single file is changed, the summary line can be the normal
|
||||
file first line (starting with the asterisk). Then there is no
|
||||
individual files section.
|
||||
first line of a ChangeLog entry (starting with the asterisk). Then
|
||||
there will be no individual ChangeLog entries beyond the one in the
|
||||
summary line.
|
||||
|
||||
- If the commit has more than one author, the commit message should
|
||||
contain separate lines to mention the other authors, like the
|
||||
@ -243,12 +247,12 @@ them right the first time, so here are guidelines for formatting them:
|
||||
- Explaining the rationale for a design choice is best done in comments
|
||||
in the source code. However, sometimes it is useful to describe just
|
||||
the rationale for a change; that can be done in the commit message
|
||||
between the summary line and the file entries.
|
||||
between the summary line and the following ChangeLog entries.
|
||||
|
||||
- Emacs generally follows the GNU coding standards for ChangeLogs: see
|
||||
https://www.gnu.org/prep/standards/html_node/Change-Logs.html
|
||||
or run 'info "(standards)Change Logs"'. One exception is that
|
||||
commits still sometimes quote `like-this' (as the standards used to
|
||||
- Emacs follows the GNU coding standards for ChangeLog entries: see
|
||||
https://www.gnu.org/prep/standards/html_node/Change-Logs.html or run
|
||||
'info "(standards)Change Logs"'. One exception is that commits
|
||||
still sometimes quote `like-this' (as the standards used to
|
||||
recommend) rather than 'like-this' or ‘like this’ (as they do now),
|
||||
as `...' is so widely used elsewhere in Emacs.
|
||||
|
||||
@ -261,9 +265,9 @@ them right the first time, so here are guidelines for formatting them:
|
||||
in Emacs; that includes spelling and leaving 2 blanks between
|
||||
sentences.
|
||||
|
||||
They are preserved indefinitely, and have a reasonable chance of
|
||||
being read in the future, so it's better that they have good
|
||||
presentation.
|
||||
The ChangeLog entries are preserved indefinitely, and have a
|
||||
reasonable chance of being read in the future, so it's better that
|
||||
they have good presentation.
|
||||
|
||||
- Use the present tense; describe "what the change does", not "what
|
||||
the change did".
|
||||
|
21
admin/notes/kind-communication
Normal file
21
admin/notes/kind-communication
Normal file
@ -0,0 +1,21 @@
|
||||
The GNU Project encourages contributions from anyone who wishes to
|
||||
advance the development of the GNU system, regardless of gender, race,
|
||||
ethnic group, physical appearance, religion, cultural background, and
|
||||
any other demographic characteristics, as well as personal political
|
||||
views.
|
||||
|
||||
People are sometimes discouraged from participating in GNU development
|
||||
because of certain patterns of communication that strike them as
|
||||
unfriendly, unwelcoming, rejecting, or harsh. This discouragement
|
||||
particularly affects members of disprivileged demographics, but it is
|
||||
not limited to them. Therefore, we ask all contributors to make a
|
||||
conscious effort, in GNU Project discussions, to communicate in ways
|
||||
that avoid that outcome — to avoid practices that will predictably and
|
||||
unnecessarily risk putting some contributors off.
|
||||
|
||||
The GNU Kind Communications Guidelines suggest specific ways to
|
||||
accomplish that goal. You can find the latest version at
|
||||
https://www.gnu.org/philosophy/kind-communication.html
|
||||
|
||||
When sending messages to Emacs mailing lists, we ask you to read and
|
||||
respect these guidelines.
|
@ -794,7 +794,7 @@ that comes after it in the buffer position order, i.e., nodes with
|
||||
start positions greater than the end position of @var{start}.
|
||||
|
||||
In the tree shown above, @code{treesit-search-subtree} traverses node
|
||||
@samp{S} (@var{start}) and nodes marked with @code{o}, where this
|
||||
@samp{S} (@var{start}) and nodes marked with @code{o}, whereas this
|
||||
function traverses the nodes marked with numbers. This function is
|
||||
useful for answering questions like ``what is the first node after
|
||||
@var{start} in the buffer that satisfies some condition?''
|
||||
@ -916,35 +916,37 @@ nodes.
|
||||
|
||||
@defun treesit-parent-until node predicate &optional include-node
|
||||
This function repeatedly finds the parents of @var{node}, and returns
|
||||
the parent that satisfies @var{pred}. @var{pred} can be either a
|
||||
function that takes a node as argument and returns @code{t} or
|
||||
@code{nil}, or a regexp matching node type names, or other valid
|
||||
the parent that satisfies @var{predicate}. @var{predicate} can be
|
||||
either a function that takes a node as argument and returns @code{t}
|
||||
or @code{nil}, or a regexp matching node type names, or other valid
|
||||
predicates described in @var{treesit-thing-settings}. If no parent
|
||||
satisfies @var{pred}, this function returns @code{nil}.
|
||||
satisfies @var{predicates}, this function returns @code{nil}.
|
||||
|
||||
Normally this function only looks at the parents of @var{node} but not
|
||||
@var{node} itself. But if @var{include-node} is non-@code{nil}, this
|
||||
function returns @var{node} if @var{node} satisfies @var{pred}.
|
||||
function returns @var{node} if @var{node} satisfies @var{predicate}.
|
||||
@end defun
|
||||
|
||||
@defun treesit-parent-while node pred
|
||||
@defun treesit-parent-while node predicate
|
||||
This function goes up the tree starting from @var{node}, and keeps
|
||||
doing so as long as the nodes satisfy @var{pred}. That is, this
|
||||
function returns the highest parent of @var{node} that still satisfies
|
||||
@var{pred}. Note that if @var{node} satisfies @var{pred} but its
|
||||
immediate parent doesn't, @var{node} itself is returned.
|
||||
|
||||
@var{pred} is the same as in @code{treesit-parent-until} above.
|
||||
doing so as long as the nodes satisfy @var{predicate}, a function that
|
||||
takes a node as argument. That is, this function returns the highest
|
||||
parent of @var{node} that still satisfies @var{predicate}. Note that if
|
||||
@var{node} satisfies @var{predicate} but its immediate parent doesn't,
|
||||
@var{node} itself is returned.
|
||||
@end defun
|
||||
|
||||
@defun treesit-node-top-level node &optional type
|
||||
@defun treesit-node-top-level node &optional predicate include-node
|
||||
This function returns the highest parent of @var{node} that has the
|
||||
same type as @var{node}. If no such parent exists, it returns
|
||||
@code{nil}. Therefore this function is also useful for testing
|
||||
whether @var{node} is top-level.
|
||||
|
||||
If @var{type} is non-@code{nil}, this function matches each parent's
|
||||
type with @var{type} as a regexp, rather than using @var{node}'s type.
|
||||
If @var{predicate} is @code{nil}, this function uses @var{node}'s type
|
||||
to find the parent. If @var{predicate} is non-@code{nil}, this
|
||||
function searches the parent that satisfies @var{predicate}. If
|
||||
@var{include-node} is non-@code{nil}, this function returns @var{node}
|
||||
if @var{node} satisfies @var{predicate}.
|
||||
@end defun
|
||||
|
||||
@node Accessing Node Information
|
||||
|
32
etc/PROBLEMS
32
etc/PROBLEMS
@ -476,6 +476,29 @@ You are probably using a shell that doesn't support job control, even
|
||||
though the system itself is capable of it. Either use a different shell,
|
||||
or set the variable 'cannot-suspend' to a non-nil value.
|
||||
|
||||
*** Emacs running on WSL receives stray characters as input.
|
||||
|
||||
For example, you could see Emacs inserting 'z' characters even though
|
||||
nothing is typed on the keyboard, and even if you unplug the keyboard.
|
||||
|
||||
The reason is a bug in the WSL X server's handling of key-press and
|
||||
key-repeat events. A workaround is to use the Cygwin or native
|
||||
MS-Windows build of Emacs instead.
|
||||
|
||||
*** On MS-Windows, the Windows key gets "stuck".
|
||||
When this problem happens, Windows behaves as if the Windows key were
|
||||
permanently pressed down. This could be a side effect of Emacs on
|
||||
MS-Windows hooking keyboard input on a low level, in order to support
|
||||
registering the Windows keys as hot keys. If that hook takes too much
|
||||
time for some reason, Windows can decide to remove the hook, which
|
||||
then has this effect.
|
||||
|
||||
This is arguably a bug in Emacs, for which we don't yet have a
|
||||
solution. To work around, set the 'LowLevelHooksTimeout' value in the
|
||||
registry key "HKEY_CURRENT_USER\Control Panel\Desktop" to a number
|
||||
higher than 200 msec; the maximum allowed value is 1000 msec (create
|
||||
the value if it doesn't exist under that key).
|
||||
|
||||
** Mailers and other helper programs
|
||||
|
||||
*** movemail compiled with POP support can't connect to the POP server.
|
||||
@ -545,15 +568,6 @@ As a workaround, input the passphrase with a GUI-capable pinentry
|
||||
program like 'pinentry-gnome' or 'pinentry-qt5'. Alternatively, you
|
||||
can use the 'pinentry' package from Emacs 25.
|
||||
|
||||
*** Emacs running on WSL receives stray characters as input.
|
||||
|
||||
For example, you could see Emacs inserting 'z' characters even though
|
||||
nothing is typed on the keyboard, and even if you unplug the keyboard.
|
||||
|
||||
The reason is a bug in the WSL X server's handling of key-press and
|
||||
key-repeat events. A workaround is to use the Cygwin or native
|
||||
MS-Windows build of Emacs instead.
|
||||
|
||||
** Problems with hostname resolution
|
||||
|
||||
*** Emacs does not know your host's fully-qualified domain name.
|
||||
|
@ -1746,7 +1746,7 @@ else if (type.equals (ClipDescription.MIMETYPE_TEXT_URILIST))
|
||||
|
||||
/* Attempt to acquire permissions for this URI;
|
||||
failing which, insert it as text instead. */
|
||||
|
||||
|
||||
if (uri != null
|
||||
&& uri.getScheme () != null
|
||||
&& uri.getScheme ().equals ("content")
|
||||
|
@ -4321,6 +4321,11 @@ this subdir."
|
||||
(prefix-numeric-value arg)
|
||||
(lambda ()
|
||||
(when (or (not (looking-at-p dired-re-dot))
|
||||
;; Don't skip symlinks to ".", "..", etc.
|
||||
(save-excursion
|
||||
(re-search-forward
|
||||
dired-permission-flags-regexp nil t)
|
||||
(eq (char-after (match-beginning 1)) ?l))
|
||||
(not (equal dired-marker-char dired-del-marker)))
|
||||
(delete-char 1)
|
||||
(insert dired-marker-char))))))))
|
||||
|
@ -193,7 +193,7 @@ LEVEL is the trace level, VALUE value returned by FUNCTION."
|
||||
;; Do this so we'll see strings:
|
||||
(cl-prin1-to-string value)
|
||||
ctx)))))
|
||||
|
||||
|
||||
(defvar trace--timer nil)
|
||||
|
||||
(defun trace--display-buffer (buf)
|
||||
|
@ -3485,9 +3485,10 @@ Fourth arg MUSTMATCH can take the following values:
|
||||
input, but she needs to confirm her choice if she called
|
||||
`minibuffer-complete' right before `minibuffer-complete-and-exit'
|
||||
and the input is not an existing file.
|
||||
- a function, which will be called with the input as the
|
||||
argument. If the function returns a non-nil value, the
|
||||
minibuffer is exited with that argument as the value.
|
||||
- a function, which will be called with a single argument, the
|
||||
input unquoted by `substitute-in-file-name', which see. If the
|
||||
function returns a non-nil value, the minibuffer is exited with
|
||||
that argument as the value.
|
||||
- anything else behaves like t except that typing RET does not exit if it
|
||||
does non-null completion.
|
||||
|
||||
@ -3576,7 +3577,13 @@ See `read-file-name' for the meaning of the arguments."
|
||||
(let ((ignore-case read-file-name-completion-ignore-case)
|
||||
(minibuffer-completing-file-name t)
|
||||
(pred (or predicate 'file-exists-p))
|
||||
(add-to-history nil))
|
||||
(add-to-history nil)
|
||||
(require-match (if (functionp mustmatch)
|
||||
(lambda (input)
|
||||
(funcall mustmatch
|
||||
;; User-supplied MUSTMATCH expects an unquoted filename
|
||||
(substitute-in-file-name input)))
|
||||
mustmatch)))
|
||||
|
||||
(let* ((val
|
||||
(if (or (not (next-read-file-uses-dialog-p))
|
||||
@ -3612,7 +3619,7 @@ See `read-file-name' for the meaning of the arguments."
|
||||
(read-file-name--defaults dir initial))))
|
||||
(set-syntax-table minibuffer-local-filename-syntax))
|
||||
(completing-read prompt 'read-file-name-internal
|
||||
pred mustmatch insdef
|
||||
pred require-match insdef
|
||||
'file-name-history default-filename)))
|
||||
;; If DEFAULT-FILENAME not supplied and DIR contains
|
||||
;; a file name, split it.
|
||||
|
@ -254,7 +254,7 @@
|
||||
(should (eq nil (treesit-node-text
|
||||
(treesit-search-subtree
|
||||
subarray "\\["))))
|
||||
;; If ALL=nil, searching for number should still find the
|
||||
;; If ALL=t, searching for number should still find the
|
||||
;; numbers.
|
||||
(should (equal "1" (treesit-node-text
|
||||
(treesit-search-subtree
|
||||
|
Loading…
Reference in New Issue
Block a user