1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 20:00:46 -08:00
Commit graph

162608 commits

Author SHA1 Message Date
Gregory Heytings
6d3cea2c8e Minor improvements to locked narrowing
* src/xdisp.c (get_locked_narrowing_begv)
(get_locked_narrowing_zv): Safer handling of negative values.
(handle_fontified_prop): Do not use locked narrowing if the region
size is <= 0.

* src/keyboard.c (safe_run_hooks_maybe_narrowed): Do not use
locked narrowing if the region size is <= 0.
2022-11-27 23:53:51 +01:00
Yuan Fu
d5dc1dbf7c
Remove treesit-comment-start/end and use comment-start/end-skip
treesit-comment-start/end is unnecessary because of
comment-start/end-skip, so they should be removed.

Cleanup and set comment-start/end-skip for tree-sitter C-like major
modes.

I replaced the [ \t]* part in comment-start-skip with (syntax
whitespace), which is what comment-end-skip uses.  I also added
grouping in comment-start-skip to match that of comment-end-skip.

* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Setup
comment-start/end-skip.

* lisp/treesit.el (treesit-comment-start)
(treesit-comment-end): Remove variables.
(treesit-simple-indent-presets): Use comment-start/end-skip instead.
2022-11-27 14:20:56 -08:00
Gregory Heytings
849223fba1 Merge branch 'feature/improved-locked-narrowing' 2022-11-27 22:19:41 +01:00
Eli Zaretskii
89a10ffcc4 Fix the new ctags test
* test/manual/etags/Makefile (ctags_update): Sort CTAGS* files
before comparing.  Patch by lu4nx <lx@shellcodes.org>.  (Bug#59544)

* .gitignore: Ignore CTAGS*.sorted files.
2022-11-27 20:01:50 +02:00
Stefan Kangas
7bf393dcf0 ; Consistently call alists "association list"
* doc/lispref/compile.texi (Compiler Errors):
* doc/misc/gnus.texi (Score File Format):
* etc/NEWS.24:
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
* lisp/progmodes/gdb-mi.el (gdb-threads-list)
(gdb-breakpoints-list, gdb-place-breakpoints): Prefer the term
"association list" for alists.
2022-11-27 18:12:45 +01:00
Eli Zaretskii
eaa823b9d6 ; * src/treesit.c (Ftreesit_parser_included_ranges): Doc fix. 2022-11-27 19:08:18 +02:00
Stefan Kangas
a175c42b3a ; Fix typo (Bug#59634)
* src/treesit.c (Ftreesit_parser_included_ranges): Fix typo.
2022-11-27 18:03:11 +01:00
Juanma Barranquero
7ee71ab6e5 ; * lisp/progmodes/xref.el: Fix some typos 2022-11-27 17:30:27 +01:00
Michael Albinus
1cbf2655db Extend memory-info for remote systems
* doc/lispref/files.texi (Magic File Names): Add memory-info.

* doc/lispref/internals.texi (Garbage Collection): memory-info can
also retrieve values from remote systems.

* etc/NEWS: Document changes in memory-info.  Fix typos.

* lisp/files.el (warn-maybe-out-of-memory): Ensure local memory info.

* lisp/net/tramp.el (tramp-handle-memory-info): New defun.
(tramp-file-name-for-operation)
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist)
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'memory-info'.

* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-exec-path):
Let-bind `process-file-side-effects'.

* src/alloc.c (Fmemory_info): Support remote systems.
(Qmemory_info): Declare.

* test/lisp/net/tramp-tests.el (tramp-test31-memory-info): New test.
2022-11-27 16:57:03 +01:00
Philip Kaludercic
ca42ff5f0e Consistently refer to VC packages as such
* lisp/emacs-lisp/package-vc.el: Replace instances of "source package"
in comments and docstrings.
* lisp/emacs-lisp/package.el: Replace instances of "source package" in
comments and docstrings.
2022-11-27 15:32:00 +01:00
Juanma Barranquero
31cfd6d311 Fix xref interaction with which-func (bug#59575)
* lisp/progmodes/xref.el (xref--add-log-current-defun):
New function.
(xref--xref-buffer-mode): Assign it buffer-locally to
`add-log-current-defun-function'.
2022-11-27 14:58:45 +01:00
Eli Zaretskii
a5259b48a4 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2022-11-27 15:44:17 +02:00
Eli Zaretskii
6f0906be51 ; Fix last change in etags.c
* lib-src/etags.c (cleanup_tags_file): Renamed from
clean_matched_file_tag.

* test/manual/etags/CTAGS.good_update:
* test/manual/etags/CTAGS.good_crlf: Update to match the test.
2022-11-27 15:43:39 +02:00
lu4nx
d48bb4874b Fixed ctags local command execute vulnerability
* lib-src/etags.c:

(clean_matched_file_tag): New function
(do_move_file): New function
(readline_internal):
Add `leave_cr` parameter, if true, include the \r character

* test/manual/etags/CTAGS.good_crlf: New file
* test/manual/etags/CTAGS.good_update: New file
* test/manual/etags/crlf: New file
* test/manual/etags/Makefile: Add `ctags -u` test cases
2022-11-27 15:20:49 +02:00
Juanma Barranquero
41d2365d58 Fix xref to correctly display Windows absolute filenames
* lisp/progmodes/xref.el (xref--group-name-for-display):
Use `file-name-absolute-p' instead of faking it. (Discussed
in bug#59628.)
2022-11-27 14:20:22 +01:00
Shohei YOSHIDA
bacba02e5c * lib-src/emacsclient.c (print_help_and_exit): Fix --timeout. 2022-11-27 15:17:40 +02:00
Po Lu
80bfd6dc5b Make frame synchronization more robust
* src/xterm.c (x_sync_wait_for_frame_drawn_event)
(x_sync_handle_frame_drawn): Only cancel frame synchronization
if hanging twice or more in a row.
* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
flag.
2022-11-27 19:21:03 +08:00
Gregory Heytings
18fa159fa9 ; * src/xdisp.c (get_locked_narrowing_begv): Minor change. 2022-11-27 11:26:24 +01:00
Theodor Thornhill
ea2f2f1e71 Remove compatibility code in csharp-mode
* lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove
invalid string check for Emacs 27.
(version=): Remove compatibility hack for string handling in CC Mode
in Emacs 27.1.  (Bug#59602)
2022-11-27 10:32:56 +01:00
Eli Zaretskii
8cda625b22 ; * src/treesit.c (Ftreesit_induce_sparse_tree): Doc fix. 2022-11-27 10:10:05 +02:00
Eli Zaretskii
80dcd78ff1 ; Fix recent documentation changes in treesit.el
* lisp/treesit.el (treesit-font-lock-level)
(treesit-font-lock-recompute-features): Doc fixes.
2022-11-27 10:06:02 +02:00
Eli Zaretskii
c3240ca540 ; * lisp/progmodes/sh-script.el (sh--redirect-bash-ts-mode): Doc fix. 2022-11-27 09:58:02 +02:00
Theodor Thornhill
40ff40198d Add js-ts-mode to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add js-ts-mode as
an alternative.  (Bug#59252)
2022-11-27 07:55:16 +01:00
Stefan Kangas
4a28f55149 Improve describe-text-properties display
* lisp/descr-text.el (describe-property-list): Don't propertize white
space with the 'help-argument-name' face.  This improves display
slightly when that face has an underline.
2022-11-27 07:32:13 +01:00
Gregory Heytings
914b7903ad ; * src/editfns.c: Minor improvements in comments. 2022-11-27 02:02:47 +01:00
Gregory Heytings
bf4373f90a Simplify narrowing_locks_restore
* src/editfns.c (narrowing_locks_restore): Simplify.
2022-11-27 01:53:31 +01:00
Gregory Heytings
1d1a83ba56 Improve handling of killed buffers in locked narrowings
* src/editfns.c (narrowing_locks_add, narrowing_locks_remove):
New functions, factored out.
(narrowing_lock_push, narrowing_lock_pop)
(narrowing_locks_restore): Use the new functions.
(narrowing_lock_get_bound): Return NULL for killed buffers.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
Remove killed buffers from the 'narrowing_locks' alist.
2022-11-27 01:27:05 +01:00
Yuan Fu
a3d8da2476
Make typescript-ts-mode not fallback to js-mode
1. js-mode might not be able to handle typescript file
2. Now that we use separate modes for tree-sitter modes, not falling
back makes tree-sitter modes more consistent

* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Remove
the fallback code.
2022-11-26 15:40:25 -08:00
Yuan Fu
3fe5fc3dc1
Make bash-ts-mode fall back to sh-mode if the file isn't in Bash
* lisp/progmodes/sh-script.el (sh--guess-shell): Take out into a new
function.
(sh-base-mode): Use the new function.
(bash-ts-mode): Update docstring.
(sh--redirect-recursing): New variable.
(sh--redirect-bash-ts-mode): New function.
2022-11-26 15:40:25 -08:00
Jostein Kjønigsen
bd10c3cfa2
Correctly fontify types in typeof() expression in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add new pattern.
2022-11-26 15:40:24 -08:00
Yuan Fu
93c8220937
Reorganize treesit-font-lock-feaure-list's to the new level scheme
* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (bash-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode):
Reorganized treesit-font-lock-feature-list.
2022-11-26 15:40:24 -08:00
Yuan Fu
447b9d48d9
Add treesit-font-lock-level
This replaces font-lock-maximum-decoration and allows us to disable
the busiest fontification level by default.

* lisp/treesit.el (treesit-font-lock-level): New variable.
(treesit-font-lock-feature-list)
(treesit-font-lock-settings): Change docstring.
(treesit-font-lock-recompute-features): Use the new variable.
2022-11-26 15:40:24 -08:00
Yuan Fu
cc086f37e8
Add default limit for tree-sitter recursive tree-traversing function
This fixes bug#59426.

* src/treesit.c (treesit_search_dfs)
(treesit_build_sparse_tree): Remove no_limit parameter.
(Ftreesit_search_forward, Ftreesit_induce_sparse_tree): Use default
limit of 1000.

* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
2022-11-26 15:40:24 -08:00
Yuan Fu
d884b43634
Partially fix some python tests (bug#59477)
This fixes

python-font-lock-assignment-statement-multiline-1
python-font-lock-assignment-statement-multiline-2
python-font-lock-assignment-statement-multiline-3
python-font-lock-assignment-statement-multiline-4
python-font-lock-assignment-statement-multiline-5
python-font-lock-assignment-statement-multiline-6

but leaves

python-tests--fill-long-first-line

unfixed.

* lisp/progmodes/python.el (python-mode): Add the missing setup.
2022-11-26 15:40:24 -08:00
Gregory Heytings
321d4e6155 Minor improvements for locked narrowing
* src/editfns.c (narrowing_lock_pop): Clarify comment, replace
assertion by return.
(narrowing_locks_restore): Add comments.

* lisp/subr.el (with-narrowing, internal--with-narrowing):
Simplify, use a single helper function with an optional argument.
2022-11-26 23:38:40 +01:00
Jim Porter
14d54212ea Improve robustness of server.el tests
* lisp/emacs-lisp/ert.el (ert--insert-infos): Allow 'message' to be a
function that is called when inserting the info.
(ert-info): Update docstring to describe using a function for
MESSAGE-FORM.

* lisp/server.el (server-start): Log when the server is starting.

* test/lisp/server-tests.el (server-tests/can-create-frames-p): New
constant.  Use it to skip tests that need to create frames.
(server-tests/start-emacsclient): Rename to...
(server-tests/start-client): ... this, and set the process's buffer.
(server-tests/with-server): Put the server file in a temporary
directory so we don't conflict with real Emacs servers.
(server-tests/with-client): New macro...
(server-tests/server-start/stop-prompt-with-client)
(server-tests/emacsclient/server-edit)
(server-tests/emacsclient/create-frame)
(server-tests/emacsclient/create-frame): ... use it.
(server-tests/server-start/stop-prompt-with-client): Simplify.
2022-11-26 13:40:33 -08:00
Eric Abrahamsen
eb713a8fcc Remove mentions of create-directory nnmaildir setting
* lisp/gnus/nnmaildir.el (nnmaildir-open-server): The
'create-directory server parameter should have been removed entirely,
and supplanted by 'target-prefix. Remove check for old parameter.
* doc/misc/gnus.texi (Maildir): Delete mention from manual.
2022-11-26 12:15:45 -08:00
Paul Eggert
b27e8f2628 Update from Gnulib by running admin/merge-gnulib 2022-11-26 10:56:53 -08:00
Gregory Heytings
1bf0b72eb7 Docstring improvements
* src/xdisp.c (syms_of_xdisp):
* src/keyboard.c (syms_of_keyboard):
Docstring improvements.
2022-11-26 17:38:06 +01:00
Gregory Heytings
4b5e31bf02 Docstring improvements
* src/xdisp.c (syms_of_xdisp):
* src/keyboard.c (syms_of_keyboard):
* src/buffer.c (syms_of_buffer):
Docstring improvements.
2022-11-26 17:30:31 +01:00
Gregory Heytings
2ea4f97847 Further improvements to narrowing locks
* src/editfns.c:
(narrowing_lock_get_bound): Return a pointer to a struct
Lisp_Marker instead of a character position.  Suggested by Eli
Zaretskii.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing)
(Fwiden, Fnarrow_to_region): Adapt accordingly.
(narrowing_lock_peek_tag, narrowing_lock_push)
(narrowing_lock_pop, narrowing_locks_save)
(narrowing_locks_restore): Use XCAR/XCDR/XSETCAR instead of
Fcar/Fcdr/Fsetcar.
2022-11-26 17:13:53 +01:00
Eli Zaretskii
d440ca47ed ; * src/treesit.c: Fix typos and wording in comments. 2022-11-26 17:50:36 +02:00
Juanma Barranquero
a22671dbd0 ; doc fix: Use w32-* names instead of obsolete ones
* doc/emacs/msdos.texi (Text and Binary): Describe
w32-(add|remove)-untranslated-fiesystem functions by
their non-obsolete name.
2022-11-26 15:53:21 +01:00
Stefan Kangas
bd5aa073d4 ; Don't mention Makefiles twice in (emacs) Program Modes
* doc/emacs/programs.texi (Program Modes): Don't mention Makefiles
twice.  (Bug#59610)
2022-11-26 15:49:02 +01:00
lu4nx
6e82403013 ; Clean up unused function: cuserid
* lib-src/ntlib.c (cuserid): Remove unused function.
2022-11-26 16:28:45 +02:00
Gregory Heytings
558084c7f7 Improve locked narrowing around low-level hooks.
* src/buffer.c (syms_of_buffer): Two new variables,
'long-line-locked-narrowing-region-size' and
'long-line-locked-narrowing-bol-search-limit', to make the locked
narrowing around low-level hooks configurable.

Increase the default value of 'long-line-threshold'.  After
carefully considering the (few) bug reports about long line
optimizations, I concluded that the previous default value was too
low.

* src/xdisp.c (get_locked_narrowing_begv)
(get_locked_narrowing_zv): Two new functions.
(handle_fontified_prop, reseat): Use them.

* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use them.

* src/dispextern.h (struct it): Add two new fields to store the
values returned by these functions.
Make them externally visible.

* src/editfns.c: (Fsave_restriction): Update docstring.
2022-11-26 15:10:17 +01:00
Stefan Kangas
78ccae4447 ; * doc/emacs/programs.texi (Program Modes): Improve indexing. 2022-11-26 14:55:58 +01:00
Stefan Kangas
9319c124c9 Mention new programming language support in manual
* doc/emacs/programs.texi (Program Modes): Mention newly added support
for C#, TypeScript and JSON.
2022-11-26 14:30:49 +01:00
Stefan Kangas
65f355a0ad ; Fix typos 2022-11-26 14:30:02 +01:00
Augusto Stoffel
24c06a92e9 In project-find-file and the like, add absolute file name to history
* lisp/progmodes/project.el (project--read-file-cpd-relative): Add
absolute file name to history.
2022-11-26 14:34:11 +02:00