emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 a42b20dd95 5/5: ; * lisp/progmodes/c-ts-mode.el: Add outline se


From: Yuan Fu
Subject: emacs-29 a42b20dd95 5/5: ; * lisp/progmodes/c-ts-mode.el: Add outline section headers.
Date: Sat, 24 Dec 2022 03:33:28 -0500 (EST)

branch: emacs-29
commit a42b20dd95e4ca522c090f9edf110dcd132b616f
Author: Yuan Fu <casouri@gmail.com>
Commit: Yuan Fu <casouri@gmail.com>

    ; * lisp/progmodes/c-ts-mode.el: Add outline section headers.
---
 lisp/progmodes/c-ts-mode.el | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 10f7bf5840..471d9a3dec 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -39,6 +39,8 @@
 (declare-function treesit-node-child-by-field-name "treesit.c")
 (declare-function treesit-node-type "treesit.c")
 
+;;; Custom variables
+
 (defcustom c-ts-mode-indent-offset 2
   "Number of spaces for each indentation step in `c-ts-mode'."
   :version "29.1"
@@ -91,6 +93,8 @@ follows the form of `treesit-simple-indent-rules'."
     table)
   "Syntax table for `c++-ts-mode'.")
 
+;;; Indent
+
 (defun c-ts-mode--indent-styles (mode)
   "Indent rules supported by `c-ts-mode'.
 MODE is either `c' or `cpp'."
@@ -381,6 +385,8 @@ MODE is either `c' or `cpp'."
        @c-ts-mode--fontify-defun)
       (:match "^DEFUN$" @fn)))))
 
+;;; Font-lock helpers
+
 (defun c-ts-mode--fontify-declarator (node override start end &rest args)
   "Fontify a declarator (whatever under the \"declarator\" field).
 For NODE, OVERRIDE, START, END, and ARGS, see
@@ -473,6 +479,8 @@ For NODE, OVERRIDE, START, and END, see
       (t 'font-lock-warning-face))
      override start end)))
 
+;;; Imenu
+
 (defun c-ts-mode--imenu-1 (node)
   "Helper for `c-ts-mode--imenu'.
 Find string representation for NODE and set marker, then recurse
@@ -537,6 +545,8 @@ the subtrees."
      (when var-index `(("Variable" . ,var-index)))
      (when func-index `(("Function" . ,func-index))))))
 
+;;; Defun navigation
+
 (defun c-ts-mode--end-of-defun ()
   "`end-of-defun-function' of `c-ts-mode'."
   ;; A struct/enum/union_specifier node doesn't include the ; at the
@@ -582,6 +592,8 @@ the semicolon.  This function skips the semicolon."
                    (treesit-node-end node))
     (goto-char orig-point)))
 
+;;; Filling
+
 (defun c-ts-mode--fill-paragraph (&optional arg)
   "Fillling function for `c-ts-mode'.
 ARG is passed to `fill-paragraph'."
@@ -646,6 +658,8 @@ ARG is passed to `fill-paragraph'."
       ;; itself.
       t)))
 
+;;; Modes
+
 (defvar-keymap c-ts-mode-map
   :doc "Keymap for the C language with tree-sitter"
   :parent prog-mode-map



reply via email to

[Prev in Thread] Current Thread [Next in Thread]