Commit graph

163986 commits

Author SHA1 Message Date
Stefan Kangas
b9fa81514f ; Minor doc fixes in bind-key.el
* lisp/use-package/bind-key.el (bind-key-segregation-regexp)
(bind-key): Minor doc fixes.
2022-12-08 17:14:31 +01:00
Stefan Kangas
15fb115551 Update use-package defgroups
* lisp/use-package/bind-key.el (bind-key):
* lisp/use-package/use-package-core.el (use-package):
* lisp/use-package/use-package-ensure.el (use-package-ensure): Add
:link, :version and :group to defgroups.
2022-12-08 17:11:21 +01:00
Stefan Kangas
4be96c9dcb Drop key-chord.el support from use-package
* lisp/use-package/bind-chord.el:
* lisp/use-package/use-package-chords.el:
* test/lisp/use-package/use-package-chords-tests.el: Delete files.
* doc/misc/use-package.texi (use-package-chords): Delete section.
Ref: https://lists.gnu.org/r/emacs-devel/2022-12/msg00052.html
2022-12-08 17:00:29 +01:00
Stefan Kangas
9c21eae60c ; lisp/progmodes/java-ts-mode.el: Fix more typos. 2022-12-08 16:51:59 +01:00
Eli Zaretskii
2659311e06 ; * lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords): Fix typo. 2022-12-08 17:49:55 +02:00
Juanma Barranquero
b4a3724d3b Remove unneeded (require 'edebug) from which-func.el
* lisp/progmodes/which-func.el: Don't require edebug.  This is
code from an attempted fix to bug#49592, installed in 55cc8b040b
(2022-08-08) and left behind after 48b0f2606b (2022-08-23).
2022-12-08 13:00:34 +01:00
Stefan Kangas
5899cac111 Change use-package custom :group to initialization
* lisp/use-package/use-package-core.el (use-package): Move
defgroup to custom :group 'initialization'.
2022-12-08 08:48:24 +01:00
Stefan Kangas
8fb2afe051 ; Fix typos 2022-12-08 07:17:47 +01:00
Jim Porter
a37df90276 Treat escaped newlines in Eshell as the empty string
This fixes a regression introduced during Emacs 29's development.

* lisp/eshell/esh-arg.el (eshell-parse-argument): Handle
'eshell-empty-token' as the result of an argument-parsing hook.
(eshell-parse-argument-hook): Document 'eshell-empty-token'.
(eshell-parse-backslash): Return 'eshell-empty-token' when
encountering an escaped newline.

* test/lisp/eshell/eshell-tests.el (eshell-test/escape-nonspecial)
(eshell-test/escape-nonspecial-unicode)
(eshell-test/escape-nonspecial-quoted)
(eshell-test/escape-special-quoted): Move from here...

* test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/nonspecial)
(esh-arg-test/escape/nonspecial-unicode)
(esh-arg-test/escape-quoted/nonspecial)
(esh-arg-test/escape-quoted/special): ... to here.
(esh-arg-test/escape/special, esh-arg-test/escape/newline)
(esh-arg-test/escape-quoted/newline): New tests.

* doc/misc/eshell.texi (Arguments): Explain escaping logic in more
detail (bug#59622).
2022-12-07 21:39:07 -08:00
Stefan Kangas
d3e9bd3b57 ; Document use-package-reset-statistics
* doc/misc/use-package.texi (Gathering Statistics): Document
use-package-reset-statistics.
2022-12-08 06:36:44 +01:00
Stefan Kangas
c65e087068 ; use-package: Improve :ensure-system-package docstrings
* lisp/use-package/use-package-ensure-system-package.el
(use-package-ensure-system-package--custom-packages)
(use-package-ensure-system-package-consify)
(use-package-ensure-system-package-update-custom-packages)
(use-package-normalize/:ensure-system-package)
(use-package-ensure-system-package-exists?): Improve docstrings.
2022-12-08 06:28:17 +01:00
Stefan Kangas
141fe8b827 use-package: Improve :mode keyword documentation
* doc/misc/use-package.texi (Modes and interpreters): Improve
section and document the use of a list of regexps.

Resolves https://github.com/jwiegley/use-package/issues/996
2022-12-08 05:27:59 +01:00
Stefan Kangas
888558ec42 Improve bind-keys* and override-global-mode docstrings
* lisp/use-package/bind-key.el (bind-keys*): Add docstring.
(override-global-mode) Improve docstring.
2022-12-08 02:09:40 +01:00
Po Lu
c774e83e36 ; * src/emacs.c (main): Improvements to last change. 2022-12-08 08:57:24 +08:00
Po Lu
508b0c1b22 Fix crash on Windows 9X
* src/emacs.c (main): Call init_bignum before init_window_once.
2022-12-08 08:57:24 +08:00
Stefan Kangas
537f11f8cd ; * doc/misc/use-package.texi: Improve indexing. 2022-12-08 01:49:04 +01:00
Yuan Fu
670daa8b62
Add recursion limit to treesit--children-covering-range-recurse
* lisp/treesit.el (treesit--children-covering-range-recurse): Add
limit.
2022-12-07 16:36:07 -08:00
Yuan Fu
b429e52428
Improve tree-sitter fontification in edge-cases (bug#59738)
* lisp/treesit.el (treesit-font-lock-fontify-region): Use
treesit--children-covering-range-recurse.
2022-12-07 16:04:17 -08:00
Stefan Kangas
98e54f597e Add new use-package manual
* doc/misc/use-package.texi: Rewrite manual.
2022-12-08 00:47:04 +01:00
Theodor Thornhill
c83c95634e
Add c-ts-mode-indent-defun (bug#59662)
Add in this function to mimic 'c-indent-defun'.

* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): New function.
(c-ts-mode-map): New mode map that uses said function.
2022-12-07 12:01:51 -08:00
Theodor Thornhill
6479691cf0
Fix syntax-table for tree-sitter modes
When adapting the 'c-populate-syntax-table' for tree-sitter, I misread
the code, and thus some crucial entries were missing.  For the
relevant modes we use the same table as specified in the
non-tree-sitter major mode.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--syntax-table): Add new entries.
* lisp/textmodes/css-mode.el (css-ts-mode): Add new entries.
2022-12-07 12:01:51 -08:00
Brian Leung
b710ca62c0
c++-ts-mode: Highlight nullptr as a constant
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
nullptr.
2022-12-07 12:01:51 -08:00
Yuan Fu
d31a253983
Improve parameter checking in tree-sitter functions
* src/treesit.c (treesit_check_position): Extract out new function.
(Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range): Replace code with the new
function.
(Ftreesit_query_capture): Add missing check for node and parser.  Add
check for range for BEG and END.  Move treesit_initialize to the
beginning of the function.

* test/src/treesit-tests.el (treesit-node-api)
(treesit-query-api): Add tests for out-of-range error.
2022-12-07 12:01:37 -08:00
Eli Zaretskii
a669d5fae5 ; * test/lisp/comint-tests.el (w32-application-type): Fix typo. 2022-12-07 21:52:00 +02:00
Eli Zaretskii
f7262b8f81 Fix comint-tests on MS-Windows
* test/lisp/comint-tests.el (comint-tests/test-password-function):
On MS-Windows, call 'w32-native-executable-find' instead of
'executable-find', to find the native version of the 'cat'
program.
(w32-native-executable-p, w32-native-executable-find): New
functions.
2022-12-07 21:23:42 +02:00
João Távora
fef1755736 Use new external-completion.el in Eglot
This refactor simplifies Eglot's source code.

* lisp/progmodes/eglot.el:
(Package-Requires): Require external-completion.
(external-completion): Require it.
(xref-backend-identifier-completion-table): Use external-completion-table.
(completion-category-overrides): No longer set it.
("Backend Completion"): Delete section.
2022-12-07 19:07:12 +00:00
João Távora
bf81df86e5 Don't override completion-category-defaults in fido-mode
To more closely emulate ido-mode, fido-mode and fido-vertical-mode
strongly lean to the 'flex completion style.  But overriding
completion-category-defaults is not the correct way to do it, since
sometimes even the 'flex style isn't possible.

* lisp/icomplete.el (icomplete--fido-mode-setup): Don't set
completion-category-defaults here.
2022-12-07 19:07:12 +00:00
João Távora
4bc9c8972a Add lisp/external-completion.el for completions from external tools
This table uses a new 'external' completion style which has been in
use in Eglot and other third-party extensions for a long time.  It's
meant for libraries that interface with an external tool which
provides completions, such as a shell utility, an inferior process, an
http server.

The new file lisp/external-completion.el provides a helper function,
external-completion-table which is given an interfacing function to
the external tool and returns a "programmed completion" table that is
bound to the 'external' completion style.  That table can then be used
with completing-read or any other facility expecting a completion
table.

When the 'external' is in use, the usual styles configured by the user
or other in 'completion-styles' are completely overriden.  This
relatively minor inconvenience is the price to pay for responsive
completion where the full set of completion candidates doesn't need to
be transfered into Emacs's address space.

* lisp/external-completion.el: New file.

* etc/NEWS: (Lisp Changes in Emacs 29.1): Mention
  external-completion-table.
2022-12-07 19:06:09 +00:00
João Távora
bfc00f1c12 Eglot: fix setting of flymake-list-only-diagnostics (bug#59824)
When Eglot receives diagnostics for a file not yet visited in Emacs,
it stores them in flymake-list-only-diagnostics, which feed M-x
flymake-show-project-diagnostics.  If the file is eventually visited
in a buffer and Eglot starts receibing diagnostics for it, the
flymake-list-only-diagnostics database has to be updated accordingly,
since the previous diagnostics are now stale.

* lisp/progmodes/eglot.el (eglot-handle-notification): Reset
flymake-list-only-diagnostics
2022-12-07 11:30:45 +00:00
Mattias Engdegård
d2411615e8 * test/src/sqlite-tests.el (sqlite-version): Declare. 2022-12-07 09:21:23 +01:00
Thomas Fitzsimmons
9ae1c2762d EUDC: Outline deprecation plans in NEWS
* etc/NEWS (EUDC): Mention deprecation plans.
2022-12-06 21:41:51 -05:00
Yuan Fu
6acf95cbea
Fix admin/notes/tree-sitter/build-module/build.sh (bug#59789)
Besides the problem mentioned by Juri, which is fixed by removing

-cp tree-sitter-lang.in "tree-sitter-${lang}/src"
-cp emacs-module.h "tree-sitter-${lang}/src"

(we removed those files in an earlier commit, because they are not
used anymore.)

Now it also more parameterized and builds typescript and tsx
separately.

* admin/notes/tree-sitter/build-module/build.sh (topdir)
(repo, sourcedir, grammardir): New variables.
(Build): Make it parametric.
(Copy out): Use absolute path.

* admin/notes/tree-sitter/build-module/batch.sh (languages): Add tsx.
2022-12-06 16:11:35 -08:00
Stefan Kangas
cc63c08697 * doc/misc/eww.texi (Overview): Improve introduction. 2022-12-07 01:05:44 +01:00
Jostein Kjønigsen
b8790e320e
Consistent fontification of using-directives in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
New rules.
2022-12-06 13:43:58 -08:00
Yuan Fu
5257b9cda4
; Rename c-ts-fontify-error to c-ts-mode--fontify-error
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings)
(c-ts-fontify-error): Rename.
2022-12-06 13:43:58 -08:00
Yuan Fu
c6b454df33
; Improve docstring of c-ts-mode--fontify-variable
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-variable): Improve
docstring.
2022-12-06 13:43:58 -08:00
Yuan Fu
6187d001f2
Fontify some keywords in type face in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove some keywords.
(c-ts-mode--type-keywords): New variables.
(c-ts-mode--font-lock-settings): New rule.
2022-12-06 13:43:58 -08:00
Eli Zaretskii
b3847c0208 ; Minor cleanup in treesit.c
* src/treesit.c (Ftreesit_query_capture)
(Ftreesit_parser_set_included_ranges): Minor cleanups.
2022-12-06 19:28:02 +02:00
Stefan Kangas
40af27859e ; * lib-src/etags.c (escape_shell_arg_string): Minor doc fix. 2022-12-06 18:05:08 +01:00
Mattias Engdegård
43b7e7efbf Fix etags builds on non-Windows non-MS-DOS machines
* lib-src/etags.c: In this file, MSDOS is always defined but can be
either `true` or `false`, so don't used `defined MSDOS` as a condition.
2022-12-06 17:37:22 +01:00
Eli Zaretskii
7e6d1d1c47 ; Fix last change in etags.c. 2022-12-06 18:13:41 +02:00
lu4nx
01a4035c86 Fix etags local command injection vulnerability
* lib-src/etags.c: (escape_shell_arg_string): New function.
(process_file_name): Use it to quote file names passed to the
shell.  (Bug#59817)
2022-12-06 18:07:45 +02:00
Eli Zaretskii
ed4734405d Avoid crashes in a build --without-modules
* src/lread.c (syms_of_lread): Move the definitions of
'dynamic-library-suffixes' outside of the HAVE_MODULES
conditional.  (Bug#59832)
2022-12-06 17:15:35 +02:00
Eli Zaretskii
70a2eb4a0b Fix 'add-display-text-property' when OBJECT is non-nil
* lisp/emacs-lisp/subr-x.el (add-display-text-property): Fix the
case where OBJECT is not nil.  (Bug#59857)

* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x-test-add-display-text-property): Add test for this case.
2022-12-06 14:41:36 +02:00
Michael Albinus
d58d1dd48a Do not run slow tests on EMBA
* test/infra/gitlab-ci.yml (.filenotify-gio-template): Do not run
scheduled.
(build-native-comp-speed1, build-native-comp-speed2): Comment out.

* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-part1): Skip also on EMBA.
2022-12-06 12:36:15 +01:00
Mattias Engdegård
9b9b39a2d8 Lisp reader undefined behaviour excision
* src/lread.c (read_bool_vector, skip_lazy_string):
Replace `|` with `||` to explicitly introduce sequence points since
the variables, `length` and `nskip`, are mutated more than once.

The `|` was just a weak attempt at micro-optimisation in any case;
sorry about that.
2022-12-06 12:13:18 +01:00
Randy Taylor
717f847728 ; Fix typo in js--treesit-imenu
* lisp/progmodes/js.el (js--treesit-imenu): Fix a typo.  (Bug#59849)
2022-12-06 05:27:44 +01:00
Yuan Fu
c26fe45cb8
Fix treesit-query-capture
Before this change Ftreesit_query_capture doesn't convert character
position to byte position for BEG and END parameters.  I observed
fontification issue in css files but couldn't figure out why, now I
know :-)

I decide to keep treesit--font-lock-query-expand-range, since it might
provide a escape hatch for problems we discover in the future, and it
should be very cheap so no downside of keeping it.

* lisp/textmodes/css-mode.el (css-ts-mode): Stop setting
treesit--font-lock-query-expand-range.
* lisp/treesit.el (treesit--font-lock-query-expand-range): Update
docstring.
* src/treesit.c (Ftreesit_query_capture): Convert BEG and END to byte
position.  Also added parentheses wround "beg_byte - visible_beg" in
the call to ts_query_cursor_set_byte_range (i.e., style change).
2022-12-05 19:56:47 -08:00
Jostein Kjønigsen
318bf42b41
Improve fontification of typescript-ts-mode (bug#59831)
- Highlight property and field definitions in class declaration.
- Highlight property-keys in object initializaters.
- Highlight variable-names in function/method return-statements.

* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Add fontification rules.
2022-12-05 12:27:25 -08:00
Theodor Thornhill
64271bbb7d
Add back pair feature in json-ts-mode fontification (bug#59833)
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Add back in removed pair feature.  Also alphabetize features.
(json-ts-mode): Use the new feature.
2022-12-05 12:21:31 -08:00