emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/devicetree-ts-mode bc07c11245 11/11: Version 0.3


From: ELPA Syncer
Subject: [elpa] externals/devicetree-ts-mode bc07c11245 11/11: Version 0.3
Date: Tue, 16 Jan 2024 03:58:29 -0500 (EST)

branch: externals/devicetree-ts-mode
commit bc07c1124545cbf6e5ebe64e92bfaa306e309033
Author: Aleksandr Vityazev <avityazew@gmail.com>
Commit: Aleksandr Vityazev <avityazew@gmail.com>

    Version 0.3
    
    * devicetree-ts-mode: Add information about Devisetree to the comments 
section.
    (devicetree-ts-mode--syntax-table) -> devicetree-ts-mode-syntax-table.
    (devicetree-ts-mode--indent-rules): Make it a function.
    (devicetree-ts-mode--name-function): Fix name.
    And other minor fixes.
    * elpaignore: Add LICENSE file.
    * README: update.
---
 .elpaignore           |  1 +
 README.md             |  2 +-
 README.org            |  2 +-
 devicetree-ts-mode.el | 52 ++++++++++++++++++++++++++++++---------------------
 4 files changed, 34 insertions(+), 23 deletions(-)

diff --git a/.elpaignore b/.elpaignore
index d2929f5d3c..85bd7f54dc 100644
--- a/.elpaignore
+++ b/.elpaignore
@@ -1,2 +1,3 @@
 .envrc
 guix.scm
+LICENSE
diff --git a/README.md b/README.md
index 2b41aaa6f9..8f991ce21b 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 
 
-### Version 0.2
+### Version 0.3
 
 
 # About
diff --git a/README.org b/README.org
index 2238f5ea80..d937f08ef4 100644
--- a/README.org
+++ b/README.org
@@ -1,6 +1,6 @@
 #+OPTIONS: toc:nil
 
-*** Version 0.2
+*** Version 0.3
 
 * About
 
diff --git a/devicetree-ts-mode.el b/devicetree-ts-mode.el
index 1d9f72cf66..1a1e4b3270 100644
--- a/devicetree-ts-mode.el
+++ b/devicetree-ts-mode.el
@@ -4,7 +4,7 @@
 
 ;; Author: Aleksandr Vityazev <avityazew@gmail.com>
 ;; Keywords: languages devicetree tree-sitter
-;; Version: 0.2
+;; Version: 0.3
 ;; Homepage: https://sr.ht/~akagi/devicetree-ts-mode
 ;; Package-Requires: ((emacs "29.1"))
 
@@ -24,8 +24,17 @@
 ;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
+;;
+;; The "Open Firmware Device Tree", or simply Devicetree, is a
+;; data structure and language for describing hardware.  More
+;; specifically, it is a description of hardware that is readable by
+;; an operating system so that the operating system doesn't need to
+;; hard code details of the machine.
+;;
 ;; A grammar for Devicetree can be found at
 ;; https://github.com/joelspadin/tree-sitter-devicetree
+;;
+;; Thist package provides tree-sitter major mode for Devicetree files.
 
 ;; Features
 ;;
@@ -44,15 +53,18 @@
 (declare-function treesit-parser-create "treesit.c")
 (declare-function treesit-node-child-by-field-name "treesit.c")
 
+(defgroup devicetree ()
+  "Tree-sitter support for DTS."
+  :prefix "devicetree-ts-"
+  :group 'languages)
+
 (defcustom devicetree-ts-mode-indent-offset 4
   "Number of spaces for each indentation step in `devicetree-ts-mode'."
-  :version "29.1"
   :type 'natnum
-  :safe 'natnump
-  :group 'devicetree)
+  :safe 'natnump)
 
 ;; Taken from the dts-mode
-(defvar devicetree-ts-mode--syntax-table
+(defvar devicetree-ts-syntax-mode-table
   (let ((table (make-syntax-table)))
 
     (modify-syntax-entry ?<  "(>" table)
@@ -79,7 +91,8 @@
     table)
   "Syntax table for `devicetree-ts-mode'.")
 
-(defvar devicetree-ts-mode--indent-rules
+(defun devicetree-ts-mode--indent-rules ()
+  "Tree-sitter indent rules for `devicetree-ts-mode'."
   (let ((offset devicetree-ts-mode-indent-offset))
     `((devicetree
        ((node-is ">") parent-bol 0)
@@ -90,16 +103,15 @@
        ((parent-is "node") parent-bol ,offset)
        ((parent-is "property") parent-bol ,offset)
        ((parent-is "integer_cells") first-sibling 1)
-       (no-node parent-bol 0))))
-  "Tree-sitter indent rules for `devicetree-ts-mode'.")
+       (no-node parent-bol 0)))))
 
-(defvar devicetree-ts-mode--treesit-keywords
+(defconst devicetree-ts-mode--treesit-keywords
   '("/delete-node/" "/delete-property/" "#define" "#include"
     "/omit-if-no-ref/" "/dts-v1/"))
 
-(defvar devicetree-ts-mode--treesit-operators
-  '( "!" "~" "-" "+" "*" "/" "%" "||" "&&" "|"
-     "^" "&" "==" "!=" ">" ">=" "<=" ">" "<<" ">>"))
+(defconst devicetree-ts-mode--treesit-operators
+  '("!" "~" "-" "+" "*" "/" "%" "||" "&&" "|"
+    "^" "&" "==" "!=" ">" ">=" "<=" ">" "<<" ">>"))
 
 (defvar devicetree-ts-mode--font-lock-settings
   (treesit-font-lock-rules
@@ -164,7 +176,7 @@
     (treesit-node-children node)
     '())))
 
-(defun devicetree-ts--mode--name-function (node)
+(defun devicetree-ts-mode--name-function (node)
   "Return name of NODE to use for in imenu."
   (let ((name (treesit-node-child-by-field-name node "name")))
     (concat (treesit-node-text name t)
@@ -175,8 +187,6 @@
 ;;;###autoload
 (define-derived-mode devicetree-ts-mode prog-mode "DTS"
   "Major mode for editing devicetree, powered by tree-sitter."
-  :group 'devicetree
-  :syntax-table devicetree-ts-mode--syntax-table
 
   (when (treesit-ready-p 'devicetree)
     (treesit-parser-create 'devicetree)
@@ -187,13 +197,14 @@
 
     ;; Imenu.
     (setq-local treesit-simple-imenu-settings
-                `((nil "\\`node\\'"
-                       nil devicetree-ts--mode--name-function)))
+                `((nil ,(rx bos "node" eos)
+                       nil devicetree-ts-mode--name-function)))
     (setq-local which-func-functions nil)
 
     ;; Indent.
     (setq-local treesit-simple-indent-rules
-                devicetree-ts-mode--indent-rules)
+                (devicetree-ts-mode--indent-rules))
+
     ;; (setq-local indent-tabs-mode t)
 
     ;; Electric
@@ -216,9 +227,8 @@
 
     (treesit-major-mode-setup)))
 
-(if (treesit-ready-p 'devicetree)
-    (add-to-list 'auto-mode-alist
-                 '("\\.dtsi?\\'" . devicetree-ts-mode)))
+(when (treesit-ready-p 'devicetree)
+  (add-to-list 'auto-mode-alist '("\\.dtsi?\\'" . devicetree-ts-mode)))
 
 (provide 'devicetree-ts-mode)
 ;;; devicetree-ts-mode.el ends here



reply via email to

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