summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
| | * | | ; Merge from origin/emacs-29Eli Zaretskii2023-04-15
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following commits were skipped: 57490fff6ec ; Backport: Eglot: fix misplaced parenthesis in last comm... 2a62273f3bf Backport: Eglot: no more tests based on Pylsp (bug#62694)
| | | * | ; Backport: Eglot: fix misplaced parenthesis in last commit to eglot-tests.elJoão Távora2023-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/lisp/progmodes/eglot-tests.el (eglot-test-eldoc-after-completions): Fix misplaced parenthesis. (cherry picked from commit 3aedd5c920560fe6456a860a900be40a35e850d2)
| | | * | Backport: Eglot: no more tests based on Pylsp (bug#62694)João Távora2023-04-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The functionality under test in eglot.el is exactly the same, but use the clangd server only, as that is used in more tests, and it is much easier to check if it misbehaves or not. Tests pass with clangd version 15. * test/lisp/progmodes/eglot-tests.el (python): Don't require it. (eglot--call-with-fixture): Simplify. (eglot--wait-for-clangd): New helper. (eglot-test-basic-completions) (eglot-test-non-unique-completions, eglot-test-basic-xref) (eglot-test-snippet-completions) (eglot-test-snippet-completions-with-company) (eglot-test-eldoc-after-completions, eglot-test-multiline-eldoc): Use clangd, not pylsp. (eglot-test-formatting): Renamed from eglot-test-python-autopep-formatting. (eglot-test-python-yapf-formatting): Remove. (cherry picked from commit fc8230f3362b12955152f48565a6c670b4c4cc88)
| | * | | Merge from origin/emacs-29Eli Zaretskii2023-04-15
| | |\ \ \ | | | | |/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5ef7ff05736 ; Start a new ChangeLog.4 file. 11126c6d30a Fix 'C-h k' for "Paste from Kill Menu" in context menus 74ddfe811f9 ; * doc/misc/calc.texi (Rewrites Tutorial): Fix a typo (b... 08cda286c3f Improve the documentation of the XDS support 14d1c00e806 Allow reindentation of images inserted by 'mm-inline-image' b63a9eda01c Fix "C-h k" and "C-h c" with Paste from Kill Menu b36c21e27dc Change cursor color on NS port when it matches the face b... 96714c106b7 Improve documentation of image-related commands 6a2863ca016 Fix handling of sliced images 5be79fd05a5 ; * etc/NEWS: Announce 'cyrillic-mongolian' IM. ca1a0fda98a ; Fix last change. ce63462dbda Add cyrillic-mongolian input method 58801792706 ; Minor addition to the Emacs FAQ 88847dee125 Jsonrpc: don't bind inhibit-read-only to t so early cb8c87a423a Allow active region when IM is used # Conflicts: # etc/NEWS
| | | * | ; Start a new ChangeLog.4 file.Eli Zaretskii2023-04-09
| | | |/
| | | * Fix 'C-h k' for "Paste from Kill Menu" in context menusEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/mouse.el (context-menu-region): Make the entries be symbols, not just integers, to prevent "C-h c" from interpreting them as character keys. (Bug#62626)
| | | * ; * doc/misc/calc.texi (Rewrites Tutorial): Fix a typo (bug#62658).Eli Zaretskii2023-04-08
| | | |
| | | * Improve the documentation of the XDS supportEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/frames.texi (Drag and Drop): Rephrase and rearrange the documentation of XDS support. Add indexing. Document 'x-dnd-save-direct' and 'x-dnd-save-direct-immediately'. Original patch from Po Lu <luangruo@yahoo.com>. * lisp/x-dnd.el (x-dnd-types-alist, x-dnd-test-function) (x-dnd-default-test-function, x-dnd-direct-save-function): Doc fixes. (x-dnd-save-direct, x-dnd-save-direct-immediately): Rename the second argument to FILENAME. Doc fix.
| | | * Allow reindentation of images inserted by 'mm-inline-image'Eli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/gnus/mm-view.el (mm-inline-image): Use "x" as text on which to put the image 'display' property, so that indentation commands don't destroy the image inadvertently. (Bug#62637)
| | | * Fix "C-h k" and "C-h c" with Paste from Kill MenuEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | * lisp/subr.el (event-basic-type, event-modifiers): Return nil if EVENT is a string. (Bug#62626)
| | | * Change cursor color on NS port when it matches the face backgroundDaniel Martín2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/macfont.m (CG_SET_FILL_COLOR_WITH_FRAME_CURSOR): New macro. (CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND): New macro. (macfont_draw): When the cursor's color matches the face background, set the fill color of the cursor to the face foreground. * src/nsterm.m (ns_maybe_dumpglyphs_background): When dumping the background of a glyph string, apply the logic mentioned above. (Bug#62573)
| | | * Improve documentation of image-related commandsEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/image.el (image-map): Make it inherit from 'image-slice-map' instead of repeating the bindings. * doc/emacs/files.texi (Image Mode): Document the key bindings set by 'insert-image'. Add indexing. * doc/lispref/display.texi (Showing Images): Make the description of user commands more concise. Add index entries and cross-reference to the Emacs manual. * etc/NEWS: Rearrange entries relevant to image commands.
| | | * Fix handling of sliced imagesEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/image.el (image-slice-map): New keymap, without some bindings that make no sense with sliced images. (insert-image, insert-sliced-image): Use it. (insert-sliced-image): Make the 'keymap' property rear-nonsticky, to prevent calling image commands when point is to the right of the slice. (Bug#62679) * lisp/image/image-crop.el (image-cut, image-crop): Doc fixes. (image-crop): Don't try using stock MS-Widows convert.exe program. Use 'image--get-image' to support sliced images.
| | | * ; * etc/NEWS: Announce 'cyrillic-mongolian' IM.Eli Zaretskii2023-04-08
| | | |
| | | * ; Fix last change.Eli Zaretskii2023-04-08
| | | |
| | | * Add cyrillic-mongolian input methodgarid30002023-04-08
| | | | | | | | | | | | | | | | | | | | * lisp/leim/quail/cyrillic.el (cyrillic-mongolian): New input method. (Bug#56617)
| | | * ; Minor addition to the Emacs FAQEli Zaretskii2023-04-08
| | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/efaq.texi (Fullscreen mode on MS-Windows): Tell how to avoid the initial screen changing size on display without using the Registry. Suggested by David Hedlund <public@beloved.name>.
| | | * Jsonrpc: don't bind inhibit-read-only to t so earlyJoão Távora2023-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to https://github.com/joaotavora/eglot/discussions/1202, where because of this very wide binding to inhibit-read-only to t, Eglot was managing to write into read-only buffers from the response handlers that ran from within the stack of the jsonrpc.el process filter. This is of course illegal and dangerous, but Eglot wasn't made aware because of the binding. * lisp/jsonrpc.el (jsonrpc--process-filter): Don't bind inhibit-read-only so early.
| | | * Allow active region when IM is usedEli Zaretskii2023-04-07
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/international/quail.el (quail-minibuffer-message): Bind deactivate-mark to allow setting active region in the minibuffer when an input method is used. (Bug#62709)
| | * | Cleaner solution for Org version updatesEli Zaretskii2023-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/Makefile.in (BYTE_COMPILE_FLAGS): Set org--built-in-p non-nil, to avoid aborting the build when Org's version is bumped. ($(lisp)/org/org.elc): Remove dependencies of org-version.el, as no longer needed. (Bug#62762)
| | * | ; * lisp/treesit.el (treesit-node-top-level): Fix typo.Eli Zaretskii2023-04-15
| | | |
| | * | ; * doc/misc/gnus.texi (Finding the Parent): Fix whitespace.Eli Zaretskii2023-04-15
| | | |
| | * | Fix errors when nnselect-always-regenerate is t (bug#61539)Andrew G Cohen2023-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The group parameter nnselect-always-regenerate causes the list of articles in the group to be generated each time it is needed. For this to work reliably the list of articles has to be generated at the appropriate time and to have a reproducible ordering. * lisp/gnus/gnus-search.el (gnus-search-run-search): For nnselect groups if the article list has not been stored, regenerate it. * lisp/gnus/nnselect.el (nnselect-generate-artlist): Sort the generated list of articles by RSV, group, and number. Store the artlist after generation. When the new optional argument INFO is non-nil, update the group info. (nnselect-compress-artlist, nnselect-uncompress-artlist): Preserve the article list ordering. (nnselect-get-artlist): Return nil when nnselect-always-regenerate is t. (nnselect-store-artlist): Store the group active range along with the artlist. Don't keep the artlist if nnselect-always-regenerate is t. (nnselect-request-group): The full article list isn't needed at this stage, only the active range. (nnselect-retrieve-headers): Regenerate the article list if there is no stored value. Inhibit gnus-demon while retrieving headers. (nnselect-request-group-scan): Don't generate the article list when nnselect-always-regenerate is t since it will be generated again later on. (nnselect-request-create-group): Allow the artlist to be passed as an argument to the function. Update the group info and store the artlist.
| | * | Improve gnus thread-referralAndrew G Cohen2023-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow thread referral to use search whenever possible, displaying the results in the current summary buffer if possible and a new nnselect buffer if not. * lisp/gnus/nnimap.el (nnimap-request-thread): Obsolete function. * lisp/gnus/gnus-search.el (gnus-search-thread): Allow detailed specification of how/where to search. Add found articles to the current summary buffer if possible, or create a new ephemeral nnselect group if not. * lisp/gnus/gnus-sum.el (gnus-refer-thread-use-search): Allow a list of servers and groups to search. (gnus-summary-refer-thread): Find thread-related articles by using a backend-specific method, gnus-search, or retrieving nearby headers in the current group. * lisp/gnus/nnselect.el (nnselect-search-thread): Obsolete function. (nnselect-request-thread): Allow thread referral from nnselect groups. * doc/misc/gnus.texi (Finding the Parent): Document changes to thread referral.
| | * | Support treesit-thing-settings in search functionsYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c (safe_assq) (treesit_traverse_get_predicate): New functions. (treesit_traverse_validate_predicate) (treesit_traverse_match_predicate): Support symbols. (Ftreesit_search_subtree) (Ftreesit_search_forward) (Ftreesit_induce_sparse_tree) (Ftreesit_node_match_p): Move validation down so we can pass LANGUAGE to it.
| | * | Add a recursion level limit for tree-sitter search predicatesYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c: (treesit_traverse_validate_predicate): Check for recursion level. (Ftreesit_search_subtree) (Ftreesit_search_forward) (Ftreesit_induce_sparse_tree) (Ftreesit_node_match_p): Update uses of treesit_traverse_validate_predicate.
| | * | ; Minor fixes in treesit.cYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c: (treesit_initialized): Make static. (treesit_find_override_name): Add check for XCAR (tail). (Ftreesit_parser_set_included_ranges): Fix comment. (treesit_recursion_limit): Change to a compile time constant. (treesit_symbol_to_c_name): Precompute the length. (Ftreesit_pattern_expand): Use predefined symbols. (treesit_cursor_helper) (Ftreesit_search_subtree) (Ftreesit_induce_sparse_tree): Update treesit_recursion_limit. (syms_of_treesit): New symbols.
| | * | Add treesit-thing-settingsYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/treesit.el (treesit--things-around) (treesit--navigate-thing) (treesit-thing-at-point): Update docstring. * src/treesit.c (treesit_traverse_validate_predicate): Refer to treesit-thing-settings. (syms_of_treesit): Add Vtreesit_thing_settings.
| | * | Convert PATTERN and REGEXP to PRED in tree-sitter functionsYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just changing names. * lisp/treesit.el (treesit-beginning-of-thing): (treesit-end-of-thing) (treesit--things-around) (treesit--navigate-thing) (treesit-thing-at-point): Change REGEXP and PATTERN to PRED.
| | * | Make use of the new pred shapes in treesit.elYuan Fu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | treesit-search-forward and friends now accept more shapes for PRED, make use of it in navigation functions. * lisp/treesit.el (treesit-node-top-level): Use treesit-node-match-p. (treesit--thing-unpack-pattern): Remove function. (treesit-beginning-of-thing) (treesit-end-of-thing): Remove PRED argument. (treesit--things-around): Remove PRED argument, use treesit-node-match-p. (treesit--top-level-thing): Remove function. (treesit--navigate-thing): Remove PRED argument. (treesit-thing-at-point): Update docstring, don't unpack PATTERN. * test/src/treesit-tests.el: (treesit--ert-test-defun-navigation): Don't unpack pattern.
| | * | Add treesit-node-match-pYuan Fu2023-04-14
| | | | | | | | | | | | | | | | * src/treesit.c (Ftreesit_node_match_p): New function.
| | * | Disallow creation of circular variable alias chainsMattias Engdegård2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make `defvaralias` signal an error upon attempts to create variable alias cycles. This detects errors earlier and makes the alias traversal during execution simpler and faster since no cycle detection is needed elsewhere. Now variable and function aliases are handled identically in these respects. * src/lisp.h (indirect_variable): Remove declaration. * src/data.c (indirect_variable): Remove. (Findirect_variable): Update doc string. Simplify alias resolution. (Fboundp, find_symbol_value, set_internal, default_value) (set_default_internal, Fmake_variable_buffer_local) (Fmake_local_variable, Fkill_local_variable, Flocal_variable_p) (Flocal_variable_if_set_p, Fvariable_binding_locus): * src/buffer.c (buffer_local_value): * src/eval.c (specbind): Simplify variable alias resolution. (Fdefvaralias): Update doc string. Check for cycles. * doc/lispref/variables.texi (Variable Aliases): Mention that `defvaralias` can signal `cyclic-variable-indirection` but `indirect-variable` cannot. * etc/NEWS: Announce the change. * test/src/eval-tests.el (eval-tests-defvaralias): New test.
| | * | Improve C++ concept indentation.Alan Mackenzie2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes bug #62386. * lisp/progmodes/cc-engine.el (c-forward-over-compound-identifier): Don't move forward over whitespace following the identifier. (c-forward-primary-expression): Add parameter stop-at-end meaning don't move forward over whitespace after the construct when non-nil. Don't recognise a primary expression when an open brace follows a parenthesized expression. (c-forward-constraint-clause): Extracted from c-forward-c++-requires-clause. Add parameter stop-at-end as above. (c-forward-c++-requires-clause): New stop-at-end parameter as above. Call the new function c-forward-constraint-clause. (c-forward-concept-fragment, c-looking-at-concept) (c-in-requires-or-at-end-of-clause, c-c++-vsemi-p): New functions. (c-guess-basic-syntax): New CASE 5A.7: "defun" open in a requires expression. CASE 5F: Close of a non-class declaration level block: Move to earlier in the function. CASE 5D: Also check for being in or at end of a constraint. New CASE 20: A C++ requires sub-clause. New CASE 16G: The closing brace of a requires clause. New CASE 17J: First "statement" inside a requires "function". (c-forward-primary-expression, c-forward-declarator, c-forward-decl-or-cast-1) (c-looking-at-or-maybe-in-bracelist): Amend the method of detecting end of symbol "requires" (aka c-fun-name-substitute-key). * lisp/progmodes/cc-fonts.el (c-get-fontification-context): Amend the method of detecting end of symbol "requires". * lisp/progmodes/cc-langs.el (c-at-vsemi-p-fn): Change the C++ entry to c-c++-vsemi-p. (c-fun-name-substitute-key): Change to an unadorned regexp. * lisp/progmodes/cc-vars.el (c-offsets-alist): Add new syntactic symbol constraint-cont. * doc/misc/cc-mode.texi (Syntactic Symbols): Add an entry for contraint-cont. (Constraint Symbols): New node under Syntactic Symbols.
| | * | * src/nsterm.m (check_native_fs): Add missing void arg.Robert Pluim2023-04-14
| | | |
| | * | ; Fix typosMichael Albinus2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Fix typos. * lisp/progmodes/flymake.el (flymake-error-echo) (flymake-warning-echo, flymake-note-echo) (flymake-show-diagnostics-at-end-of-line): Fix :package-version.
| | * | Use BASE_EQ in treesit.cMattias Engdegård2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c (Ftreesit_node_check, Ftreesit_pattern_expand) (Ftreesit_query_capture, treesit_traverse_validate_predicate) (treesit_traverse_match_predicate): Use BASE_EQ instead of EQ where this is obviously correct.
| | * | Make c-emacs-features use the proper binding of parse-sexp-lookup-propertiesAlan Mackenzie2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is relevant for bug #58558, although it does not fix it. Due to a wrong ordering of with-current-buffer and a let form, the function overwrote the global value of parse-sexp-lookup-properties and two other variables. * lisp/progmodes/cc-defs.el (c-emacs-features): Change the nesting of with-current-buffer and let so that the let bindings get used.
| | * | Fix tree-sitter testYuan Fu2023-04-13
| | | | | | | | | | | | | | | | | | | | * test/src/treesit-tests.el: (treesit-search-forward-predicate-invalid-predicate): Fix test.
| | * | Fix previous commit on tree-sitterYuan Fu2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c: (treesit_traverse_validate_predicate): Don't accept symbols. (treesit_traverse_match_predicate): Don't accept symbols, and use correct variable for the regexp and pred check. * test/src/treesit-tests.el: (treesit-search-forward-predicate): Fix the test.
| | * | Fix and cleanup nnselect-push-infoAndrew G Cohen2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/gnus/nnselect.el (nnselect-push-info): Don't update backend marks when quit-config is not nil since gnus-update-marks has already been called. Move checking for unread articles outside the gnus-atomic block so it may be interrupted. Replace let* with let. Cleanup code.
| | * | Fix bugs in treesit.oPo Lu2023-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/treesit.c (treesit_traverse_match_predicate): Remove redundant cast. (treesit_search_forward, treesit_traverse_cleanup_cursor) (Ftreesit_search_subtree, Ftreesit_search_forward) (Ftreesit_induce_sparse_tree): Fix coding style and specpdl unwinding.
| | * | Support more predicates in tree-sitter search functionsYuan Fu2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now we support regexp strings and predicate functions for the PRED argument. This change adds support for (not ...) (or ...) and (regexp . pred) predicates. I still need to find a place to document the supported shapes of a predicate. * src/treesit.c (treesit_traverse_validate_predicate): New function. (treesit_traverse_match_predicate): Support more predicate shapes. (treesit_search_dfs): (treesit_search_forward) (treesit_build_sparse_tree): Fix docstring (unrelated to this change). (Ftreesit_search_subtree) (Ftreesit_search_forward) (Ftreesit_induce_sparse_tree): Use the new function to validate predicate shape. (syms_of_treesit): New error Qtreesit_invalid_predicate. * test/src/treesit-tests.el: (treesit--ert-search-setup): Add edebug declaration. (treesit-search-forward-predicate) (treesit-search-forward-predicate-invalid-predicate): New tests.
| | * | Catch signals produced by PRED in tree-sitter search functionsYuan Fu2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Earlier we switched to using cursors rather than nodes to traverse the parse tree. Because cursors need cleanup, we have to catch signals thrown by the predicate functions and free the cursor. Failing to do this will result in leaking the cursor whenever the predicate function signals in a search function. This change fixes the leak. * src/treesit.c (treesit_traverse_cleanup_cursor): New function. (Ftreesit_search_subtree) (Ftreesit_search_forward) (Ftreesit_induce_sparse_tree): Catch signals.
| | * | Fix tree-sitter testsYuan Fu2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After 2ce27563ecc, treesit--navigate-things takes a TACTIC argument instead of using treesit-defun-tactic, so the tests need to change from binding treesit-defun-tactic to passing the tactic argument, which is what this change does. * test/src/treesit-tests.el: (treesit--ert-insert-and-parse-marker): New argument TACTIC. (treesit-defun-navigation-nested-1) (treesit-defun-navigation-nested-2) (treesit-defun-navigation-nested-3) (treesit-defun-navigation-top-level): Pass TACTIC argument.
| | * | ; * doc/misc/flymake.texi (Customizable variables): fix broken listMattias Engdegård2023-04-13
| | | |
| | * | Faster and less wrong cl-defsubst inliningMattias Engdegård2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always have inlining of functions defined by `cl-defsubst` let-bind arguments instead of making incorrect guesses when it might be safe to substitute them and then botching the substitution. This change generally results in better and safer code for all callers, in particular `cl-defstruct` constructors, accessors and mutators. * lisp/emacs-lisp/cl-macs.el (cl-defsubst): Remove outdated comment. (cl--defsubst-expand): Simplify: always let-bind. (cl--sublis): Remove. (cl-defstruct): Simplify: remove old hack that is no longer needed.
| | * | Eldoc: don't overdisplay if using eldoc-documentation-composeJoão Távora2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug#62816 This is about a particular value for 'eldoc-documentation-strategy', 'eldoc-documentation-compose'. Its helper 'eldoc--documentation-compose-1' was buggy. It created the callback for all the backends in 'eldoc-documentation-functions', but arranged so that it could potentially be invoked immediately and trigger display, half-defeating the purpose of the "patience" and causing blinking in the echo area. Now it creates all the callbacks beforehand and only then passes them to the corresponding members of eldoc-documentation-functions. This sets up the correct state in eldoc--invoke-strategy. * lisp/emacs-lisp/eldoc.el (eldoc--documentation-compose-1): Delete. (eldoc-documentation-compose) (eldoc-documentation-compose-eagerly): Rework.
| | * | Eglot: fix LSP "languageId" detectionJoão Távora2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This sweeping fix has been planned for a while, but a user recently hit this bug as described in https://github.com/joaotavora/eglot/discussions/1206. More and more servers today are "multi-language", meaning can handle more than one file type. This relies on the ':languageId' string being set to the correct value for every buffer managed by Eglot (TextDocumentItem in LSP parlance). Previously this string was calculated based on an imperfect heuristic and was wrong quite often. Many servers don't even care but some others do, so we have to fix it. * lisp/progmodes/eglot.el (eglot-lsp-server): Remove slots 'major-modes' and 'language-id'. Add slot 'languages'. (eglot--major-modes, eglot--language-ids): New helpers. (eglot--lookup-mode): Simplify or maybe complicate. (eglot--guess-contact): Use new eglot--looup-mode. Change return value. (eglot): Rework docstring. (eglot-reconnect): Use eglot--language-ids, not id. (eglot--connect): Setup eglot--languages slot in server. (eglot--TextDocumentItem): Finally, get correct language id. * test/lisp/progmodes/eglot-tests.el (eglot--guessing-contact): Enhance macro. (eglot-test-server-programs-guess-lang): Update test.
| | * | Flymake: add new flymake-show-diagnostics-at-end-of-line optionJoão Távora2023-04-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some editors have this. Depending on your preference, this can either be wildly distracting and easily confused with actual code, or a significant early aid that relieves you from moving around or reaching for the mouse to consult an error message. To be safe, hide this behind a customization variable and keep it disabled. Personally, I find it less obstrusive and more helpful than expected. * lisp/progmodes/flymake.el (flymake--delete-overlay): New helper. (flymake--highlight-line): Handle flymake-show-diagnostics-at-end-of-line. (flymake--clear-foreign-diags): Use flymake--delete-overlay. (flymake--publish-diagnostics): Use flymake--delete-overlay. (flymake-mode): Use flymake--delete-overlay. (flymake-error-echo) (flymake-warning-echo, flymake-note-echo): New faces. (flymake-show-diagnostics-at-end-of-line): New option. (Version): Bump to 1.3.4 * doc/misc/flymake.texi: (Finding diagnostics): Mention flymake-show-diagnostics-at-end-of-line. (Customizable variables): Mention flymake-show-diagnostics-at-end-of-line and a few more relevant faces. * etc/NEWS (Flymake): Mention flymake-show-diagnostics-at-end-of-line.
| | * | Stronger checking in line-number-at-pos testsMattias Engdegård2023-04-13
| | | | | | | | | | | | | | | | | | | | * test/lisp/simple-tests.el (line-number-at-pos-keeps-restriction) (line-number-at-pos-keeps-point): Check all return values.