Commit graph

89734 commits

Author SHA1 Message Date
Stefan Kangas
f0e9775b18 ; Auto-commit of loaddefs files. 2023-01-01 05:08:26 +01:00
Yuan Fu
72a81e2022
; * lisp/treesit.el (treesit-simple-indent-presets): Fix typo.
Well it's sort of a typo :-)
2022-12-31 17:11:14 -08:00
Yuan Fu
ddfeee3e8a
Build recipe interactively in treesit-install-language-grammar
If there is not existing recipe for a language, prompt to build the
recipe interactively.

* lisp/treesit.el (treesit--install-language-grammar-build-recipe):
New functions.
(treesit-install-language-grammar): Use the new function.
2022-12-31 16:23:07 -08:00
Yuan Fu
6837469780
; Add REVISION to treesit-language-source-alist
This allows users to install a particular version or branch.  Prompted
by bug#60427 and bug#60223.

* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Add REVISION.
2022-12-31 14:55:10 -08:00
Yuan Fu
0dc788aa01
; Remove GRAMMAR-DIR from treesit-language-source-alist
Removing it doesn't affect building all the language grammars in
batch.sh, so it must be an artifact I added for something else and
later forgot to remove.

* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Remove GRAMMAR-DIR.
2022-12-31 14:27:51 -08:00
Theodor Thornhill
f9aef67c36
Tweak csharp-mode font-lock-settings (bug#60376)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Rearrange features.
(csharp-ts-mode): Rearrange features.
2022-12-31 14:21:01 -08:00
Eli Zaretskii
9a386b682e Revert a recent change which causes errors
* lisp/subr.el (buffer-match-p): Undo last change, as it causes an
error in a timer function of show-paren-mode.
2022-12-31 18:32:54 +02:00
Philip Kaludercic
f309651b67 ; Fix handling of 'not' by 'buffer-match-p'
* lisp/subr.el (buffer-match-p): Look up the cadr instead of the cdr
for the negation in 'not'.
* doc/lispref/buffers.texi (Buffer List): Update documentation.
(Bug#58951)
2022-12-31 15:05:56 +01:00
Stefan Kangas
9292f595a7 ; Fix typos 2022-12-31 12:43:32 +01:00
Stefan Kangas
43c7e05a2a Fix misspelled functions in shortdoc groups
* lisp/emacs-lisp/shortdoc.el (file, list): Fix misspelled function
names: 'file-writable-p' and 'seq-reduce'.
* test/lisp/emacs-lisp/shortdoc-tests.el (subr-x): Require.
(shortdoc-all-functions-fboundp): New test.
2022-12-31 12:40:01 +01:00
kobarity
eee2aeca25 Fix python-shell-buffer-substring when retrieving a single statement
* lisp/progmodes/python.el (python-shell-buffer-substring): Do not add
"if True:" line when retrieving a single statement.
(python-shell-send-region): Add a reference to
`python-shell-buffer-substring' in docstring.
* test/lisp/progmodes/python-tests.el (python-shell-buffer-substring-13)
(python-shell-buffer-substring-14, python-shell-buffer-substring-15)
(python-shell-buffer-substring-16, python-shell-buffer-substring-17):
New tests. (Bug#60142)
2022-12-31 10:14:28 +02:00
Eli Zaretskii
bfdad6c4e5 ; Fix recent treesit-related changes
* lisp/treesit.el (treesit-language-source-alist)
(treesit--install-language-grammar-1): Doc fixes.

* src/treesit.c (Ftreesit_language_abi_version): Fix a typo in
function's Lisp name.  Doc fix.
(Ftreesit_language_available_p): Fix a typo in the function's C
name.

* doc/lispref/parsing.texi (Language Grammar): Fix wording.
2022-12-31 10:13:15 +02:00
Yuan Fu
0b58ea0e60
; * lisp/treesit.el (treesit--install-language-grammar-1): Minor fix. 2022-12-30 16:23:39 -08:00
Dmitry Gutov
724da28763 Add version tags and mention the new options in NEWS
* etc/NEWS: Mention the new options (bug#60186).

* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): Add version tags.
2022-12-31 00:13:17 +02:00
Dmitry Gutov
8675f4136c Add new options for Ruby code indentation
* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): New options (bug#60186).
(ruby-smie-grammar): Specify associativity for "?".
(ruby-smie--indent-to-stmt): Add optional argument.

* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New cases.

* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/
ruby-parenless-call-arguments-indent.rb: New files.

* test/lisp/progmodes/ruby-mode-tests.el: Add indentation tests for new files.
2022-12-31 00:00:21 +02:00
Eli Zaretskii
4922de626f ; Fix doc strings of 'treesit-install-language-grammar'
* lisp/treesit.el (treesit-install-language-grammar)
(treesit--install-language-grammar-1): Doc fixes.
2022-12-30 17:10:22 +02:00
Eli Zaretskii
69b2aaaade ; Fix recently modified docs of 'set-face-attribute' (bug#52493)
* doc/lispref/display.texi (Attribute Functions): Clarify wording
and restore removed information about resetting attributes to
'unspecified' for future frames.

* lisp/faces.el (set-face-attribute): Minor copyedit of doc
string.
2022-12-30 16:43:38 +02:00
Yuan Fu
0248fc9e1a
Add treesit-install-language-grammar
Per discussion on emacs-devel, I added function to install and compile
language grammars.

* lisp/treesit.el (treesit-language-source-alist): New variable.
(treesit-install-language-grammar)
(treesit--call-process-signal)
(treesit--install-language-grammar-1): New functions.
2022-12-30 02:56:26 -08:00
Yuan Fu
312f82d36f
Change "language definition" to "language grammar" in manual.
"Language grammar" is apparently the more widely used term among
people talking about tree-sitter.  To avoid confusion, I think it's
good to use that rather than "language definition", which is a term
that I made up :-)

Feel free to revert this if it is too much change.

* doc/lispref/elisp.texi:
* doc/lispref/modes.texi:
* doc/lispref/parsing.texi:
* lisp/treesit.el: Change "language definition" to "language grammar".
2022-12-30 00:47:22 -08:00
Yuan Fu
fba35657da
; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix. 2022-12-30 00:35:14 -08:00
Michael Albinus
ebf65c7e7e * lisp/eshell/em-tramp.el (tramp): Require also at runtime. (Bug#60402) 2022-12-30 09:26:41 +01:00
Roland Winkler
644c71d678 lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)
lisp/textmodes/bibtex.el (bibtex-beginning-of-entry):
use bibtex-any-entry-maybe-empty-head (bug#56636)
2022-12-29 23:31:08 -06:00
Roland Winkler
ab38abfdf7 lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202) 2022-12-29 23:22:48 -06:00
Gregory Heytings
d086cd6cf8 Clarify the documentation of 'set-face-attribute'
* lisp/faces.el (set-face-attribute): Mention the evaluation order
of attribute-value pairs in the docstring.

* doc/lispref/display.texi (Attribute Functions): Likewise, and
explain with an example that a different argument order might give
different results.  Also align the documentation in the manual
with that of the docstring, whose changes were discussed in
bug#57499 but not included in the manual.
2022-12-29 23:43:34 +01:00
Gregory Heytings
dafa6d6bad Handle non-string values in pcomplete
* lisp/pcomplete.el (pcomplete-arg): When
pcomplete-parse-arguments-function returns a non-string value,
return the string the user typed in, and attach the value as a
text property to that string.  Fixes bug#59956 and bug#60021.
2022-12-29 23:00:16 +01:00
Gregory Heytings
beed746f94 Fix completion when completion-auto-select is set
* lisp/minibuffer.el (completion--do-completion): Do not display
"Complete, but not unique" messages when completion-auto-select is
set.  Fixes bug#60359.
2022-12-29 22:52:17 +01:00
Yuan Fu
558b59d81b
Add color fontification in css-ts-mode (bug#60405)
* lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification
and syntax-propertize-function.
2022-12-29 11:52:06 -08:00
Yuan Fu
a96a7c8115
; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu setup. 2022-12-29 11:41:26 -08:00
Yuan Fu
793641a3db
; * lisp/progmodes/js.el: Fix byte-compile warning. 2022-12-29 11:34:51 -08:00
Juri Linkov
0aea1cf819 * lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).
Handle two cases: when a pattern is a regexp or a function.
2022-12-29 19:45:12 +02:00
Yuan Fu
38c35bf0f6
Clean up treesit-default-defun-skipper and add comments
* lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some
small issue, add comment.
2022-12-29 01:43:28 -08:00
Yuan Fu
784e509bde
Fix c-ts-mode bracket indentation (bug#60398)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new
anchor.
(c-ts-mode--bracket-children-anchor): New anchor function.
2022-12-29 00:58:50 -08:00
Yuan Fu
909091d757
; Minor cleanup for tree-sitter font-lock rules in js-ts-mode
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Minor cleanup.
2022-12-28 17:33:07 -08:00
Yuan Fu
e78e69b331
Clean up font-lock rules in js-ts-mode
Changes for each feature:

- string: Take out string-interpolation bits.
- string-interpolation: New.
- declaration: Rename to definition.
- identifier: Remove.
- property: Use a pred to filter out methods.
- expression: Rename to assignment.
- function: New.
- pattern: Merge into assignment.

* lisp/progmodes/js.el (js--treesit-font-lock-settings): See above.
(js--treesit-property-not-function-p)
(js--treesit-lhs-identifier-query): New variable.
(js--treesit-fontify-assignment-lhs): New functions.
(js-ts-mode): Update feature list.
2022-12-28 17:32:47 -08:00
Yuan Fu
398ed75c27
; * lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix. 2022-12-28 15:47:14 -08:00
Yuan Fu
19b8733aa2
Fix syntax for < and > in c++-ts-mode (bug#60351)
< and > are usually punctuation, e.g., in ->.  But when used for
templates, they should be considered pairs.  Right now we always
consider them as pairs which is incorrect.

* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Remove
variable.
(c-ts-mode--syntax-propertize): New function.
(c++-ts-mode): Remove syntax table.  Setup syntax-propertize-function.
2022-12-28 15:44:26 -08:00
Juri Linkov
db96b1282f * lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' window (bug#60249).
(help-map): Bind "C-q" to 'help-quick-toggle'.  Rebind "q" to 'help-quit'.
(help-quick): Replace help-quit-or-quick with help-quick-toggle.
(help-quick-toggle): New command.
(help-quit-or-quick): Remove command.
(help-for-help): Replace help-quick-or-quit with help-quick-toggle.
2022-12-28 20:49:23 +02:00
Juri Linkov
7a0eaee198 * lisp/isearch.el: Small fixes.
(isearch-wrap-pause): Mention the new feature of `no' and `no-ding'
in the docstring.
(isearch-lax-whitespace, isearch-forward-thing-at-point): Add the
group 'isearch' since another defgroup changed the default group.
(isearch-delete-char): Use 'isearch-invisible' instead of 'search-invisible'
since the users might change the current value with 'M-s i'.
2022-12-28 20:27:07 +02:00
Juri Linkov
b69bffeec0 * lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace "ESC" with "\e".
"ESC" looks like an attempt to use kbd syntax in customization.
But actually now 'key-description' is used in 'diff-minor-mode-map'
to convert "\e" to "ESC".
2022-12-28 20:14:43 +02:00
Juri Linkov
70480d3b6b * lisp/repeat.el (repeat-echo-function): Suggest 'add-function' in docstring.
(bug#60353)
2022-12-28 19:58:44 +02:00
Juri Linkov
fd48201ffe * lisp/tab-line.el (tab-line-cache-key-default): More cache keys (bug#60340).
Move more cache keys here from 'tab-line-format' to give users more freedom.
2022-12-28 19:47:52 +02:00
Eli Zaretskii
c0be51389e ; Yet another declare-function to avoid treesit-related warning 2022-12-28 19:08:19 +02:00
Stefan Kangas
8676bec51d ; * lisp/treesit.el (treesit--simple-imenu-1): Doc fix; wording. 2022-12-28 17:38:20 +01:00
F. Jason Park
2ddc480f44 Warn of absent networks module in ERC
* doc/misc/erc.texi: Add linkable note in Modules chapter about some
modules being required.  Also tweak markup in auth-source section.
* etc/ERC-NEWS: Mention the special role of `networks'.
* lisp/erc/erc-backend.el (erc--server-post-connect-hook): Add
internal hook for core modules to perform post-network-process,
pre-protocol config validation even when they haven't been loaded.
(erc--register-connection): Run `erc--server-post-connect-hook'.
* lisp/erc/erc-networks.el (erc-networks--bouncer-targets,
erc-networks-on-MOTD-end): Fix comments and doc strings.  Also change
former from constant to internal variable in case adjustment needed
between releases.
(erc-networks--warn-on-connect): New function to warn about the
`networks' module being absent from `erc-modules'.  This could
probably run at any time up to and including when the logical IRC
connection is established, but doing so at the process/protocol
boundary seems ideal.
* lisp/erc/erc-sasl.el (erc--register-connection): Defer to base
method instead of calling `erc-login' explicitly.
* lisp/erc/erc.el (erc-generate-new-buffer-name): Don't reconcile
buffer names when networks module not in play.
(erc-format-target-and/or-network): Don't assume networks module
loaded.
* test/lisp/erc/erc-scenarios-base-unstable.el:
(erc-scenarios-networks-no-module): New test.
* test/lisp/erc/resources/networks/no-module/basic.eld: New test data
file.  (Bug#60331.)
2022-12-28 06:51:38 -08:00
F. Jason Park
19d00fab9a Avoid "already compiled" warning in erc-compat
* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search):
Don't `byte-compile' sub-29 secrets wrapper.  This was especially
noisy in tests.  Ditch closed-over vars via HOF instead of suppressing
because compiling emits "unused lexical" warning on Emacs 27.
2022-12-28 06:51:38 -08:00
Eli Zaretskii
2d8f7b66bc ; Fix one more treesit byte-compilation warning. 2022-12-28 16:48:22 +02:00
Eli Zaretskii
2d0a921486 ; Avoid treesit-related byte-compiler warnings
* lisp/progmodes/json-ts-mode.el (treesit-node-child-by-field-name):
* lisp/textmodes/toml-ts-mode.el (treesit-node-child-by-field-name):
* lisp/progmodes/java-ts-mode.el (treesit-node-child-by-field-name):
* lisp/progmodes/csharp-mode.el
(treesit-node-child-by-field-name): Avoid byte-compilation
warnings about treesit-node-type.
2022-12-28 16:41:58 +02:00
Dmitry Gutov
8503b370be (python--treesit-settings): Remove duplicate matcher
* lisp/progmodes/python.el (python--treesit-settings): Remove
duplicate matcher (which found itself under 'function' in addition
to 'definition').
2022-12-28 15:13:25 +02:00
Yuan Fu
eedc9d79ae
Fix tree-sitter typos
* doc/lispref/parsing.texi (Tree-sitter major modes):
* lisp/progmodes/java-ts-mode.el:
* test/src/treesit-tests.el (treesit-defun-navigation-nested-4): Fix
typo.
2022-12-28 00:32:37 -08:00
Yuan Fu
248c13dcfe
Update tree-sitter major modes to use the new Imenu facility
See previous commit for more explanation.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more
types.
(c-ts-mode--imenu-1)
(c-ts-mode--imenu): Remove functions.
(c-ts-base-mode): Setup Imenu.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1)
(csharp-ts-mode--imenu): Remove functions.
(csharp-ts-mode): Setup Imenu.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1)
(java-ts-mode--imenu): Remove functions.
(java-ts-mode): Setup Imenu.
* lisp/progmodes/js.el (js--treesit-imenu-1)
(js--treesit-imenu): Remove functions.
(js--treesit-valid-imenu-entry): New function.
(js-ts-mode): Setup Imenu.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the
quotes.
(json-ts-mode--imenu-1)
(json-ts-mode--imenu): Remove functions.
(json-ts-mode): Setup Imenu.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu)
(rust-ts-mode--imenu-1): Remove functions.
(rust-ts-mode): Setup Imenu.
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's
not used anymore.  Setup Imenu.  Setup treesit-defun-name-function.
* lisp/textmodes/css-mode.el (css--treesit-imenu-1)
(css--treesit-imenu): Remove functions.
(css-ts-mode): Setup Imenu.
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it
and add a fallback.
(toml-ts-mode--imenu-1)
(toml-ts-mode--imenu): Remove functions.
(toml-ts-mode): Setup Imenu.
2022-12-27 20:58:53 -08:00