mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-04 06:31:13 -08:00
* lisp/progmodes/c-ts-mode.el: Improve logic of outlines (bug#74448).
(c-ts-mode--outline-predicate): Instead of checking only for function_declarator nodes at the beginning of line (like in GNU coding style) handle other coding styles that start the function line with either storage class (e.g. static) or type. Suggested by Filippo Argiolas <filippo.argiolas@gmail.com>
This commit is contained in:
parent
e54c218d66
commit
a52ad71cc5
1 changed files with 8 additions and 3 deletions
|
|
@ -973,9 +973,14 @@ Return nil if NODE is not a defun node or doesn't have a name."
|
|||
|
||||
(defun c-ts-mode--outline-predicate (node)
|
||||
"Match outlines on lines with function names."
|
||||
(or (and (equal (treesit-node-type node) "function_declarator")
|
||||
(equal (treesit-node-type (treesit-node-parent node))
|
||||
"function_definition"))
|
||||
(or (when-let* ((decl (treesit-node-child-by-field-name
|
||||
(treesit-node-parent node) "declarator"))
|
||||
(node-pos (treesit-node-start node))
|
||||
(decl-pos (treesit-node-start decl))
|
||||
(eol (save-excursion (goto-char node-pos) (line-end-position))))
|
||||
(and (equal (treesit-node-type decl) "function_declarator")
|
||||
(<= node-pos decl-pos)
|
||||
(< decl-pos eol)))
|
||||
;; DEFUNs in Emacs sources.
|
||||
(and c-ts-mode-emacs-sources-support
|
||||
(c-ts-mode--emacs-defun-p node))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue