]> git.eshelyaron.com Git - emacs.git/commitdiff
; * lisp/progmodes/c-ts-mode.el: Add outline section headers.
authorYuan Fu <casouri@gmail.com>
Sat, 24 Dec 2022 08:16:45 +0000 (00:16 -0800)
committerYuan Fu <casouri@gmail.com>
Sat, 24 Dec 2022 08:33:17 +0000 (00:33 -0800)
lisp/progmodes/c-ts-mode.el

index 10f7bf584032c3850f6f42c56cc94fc5ffa4f405..471d9a3dec0a25e284b8504d1ab93dc121f8e800 100644 (file)
@@ -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