[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 79b5d1022fd 05/13: Merge from origin/emacs-29
From: |
Eli Zaretskii |
Subject: |
master 79b5d1022fd 05/13: Merge from origin/emacs-29 |
Date: |
Sat, 15 Apr 2023 13:06:29 -0400 (EDT) |
branch: master
commit 79b5d1022fd6131485743949ae44cbd79580d1e5
Merge: 0f7dea49d98 db8f207e52f
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-29
db8f207e52f Fix some cases of incomplete code's indentation [c/c++-ts...
589959fb09d project-search: Pipe the list of files through 'file-regu...
---
lisp/progmodes/c-ts-mode.el | 17 +++++++++++++++++
lisp/progmodes/project.el | 5 ++++-
test/lisp/progmodes/c-ts-mode-resources/indent.erts | 14 ++++++++++++++
3 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index ece20e90a6f..600650aadc1 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -859,6 +859,18 @@ the semicolon. This function skips the semicolon."
(goto-char (match-end 0)))
(treesit-default-defun-skipper))
+(defun c-ts-base--before-indent (args)
+ (pcase-let ((`(,node ,parent ,bol) args))
+ (when (null node)
+ (let ((smallest-node (treesit-node-at (point))))
+ ;; "Virtual" closer curly added by the
+ ;; parser's error recovery.
+ (when (and (equal (treesit-node-type smallest-node) "}")
+ (equal (treesit-node-end smallest-node)
+ (treesit-node-start smallest-node)))
+ (setq parent (treesit-node-parent smallest-node)))))
+ (list node parent bol)))
+
(defun c-ts-mode-indent-defun ()
"Indent the current top-level declaration syntactically.
@@ -933,6 +945,11 @@ the semicolon. This function skips the semicolon."
;; function_definitions, so we need to find the top-level node.
(setq-local treesit-defun-prefer-top-level t)
+ ;; When the code is in incomplete state, try to make a better guess
+ ;; about which node to indent against.
+ (add-function :filter-args (local 'treesit-indent-function)
+ #'c-ts-base--before-indent)
+
;; Indent.
(when (eq c-ts-mode-indent-style 'linux)
(setq-local indent-tabs-mode t))
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index e7c0bd2069b..04c67710d71 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1227,7 +1227,10 @@ To continue searching for the next match, use the
command \\[fileloop-continue]."
(interactive "sSearch (regexp): ")
(fileloop-initialize-search
- regexp (project-files (project-current t)) 'default)
+ regexp
+ ;; XXX: See the comment in project-query-replace-regexp.
+ (cl-delete-if-not #'file-regular-p (project-files (project-current t)))
+ 'default)
(fileloop-continue))
;;;###autoload
diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent.erts
b/test/lisp/progmodes/c-ts-mode-resources/indent.erts
index 5cdefe2122c..221b3d809af 100644
--- a/test/lisp/progmodes/c-ts-mode-resources/indent.erts
+++ b/test/lisp/progmodes/c-ts-mode-resources/indent.erts
@@ -464,3 +464,17 @@ main (void)
|
}
=-=-=
+
+Name: Empty Line (Block Start)
+
+=-=
+int
+main (void)
+{
+|
+=-=
+int
+main (void)
+{
+ |
+=-=-=
- master updated (4c086bf2951 -> bc61a1afdd6), Eli Zaretskii, 2023/04/15
- master b0750baab71 02/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 0f7dea49d98 04/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 5fecdbcd81d 01/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 0fe7fef54bb 08/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 79b5d1022fd 05/13: Merge from origin/emacs-29,
Eli Zaretskii <=
- master 2d7f28ff2e7 07/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master febf4467bde 10/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 709d5580479 09/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 0f8140a57a5 03/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master bc61a1afdd6 13/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 3b0e77ec169 06/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master a85279f3905 12/13: ; Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15
- master 7191318b716 11/13: Merge from origin/emacs-29, Eli Zaretskii, 2023/04/15