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

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

[nongnu] elpa/evil-matchit 43be86d8c4 171/244: support css-in-js styled


From: ELPA Syncer
Subject: [nongnu] elpa/evil-matchit 43be86d8c4 171/244: support css-in-js styled components
Date: Thu, 6 Jan 2022 02:58:59 -0500 (EST)

branch: elpa/evil-matchit
commit 43be86d8c41841a20733718d177e8299d5379218
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>

    support css-in-js styled components
---
 README.org                 |  2 +-
 evil-matchit-javascript.el | 60 ++++++++++++++++++++++++++++++++++------------
 evil-matchit.el            |  4 ++--
 pkg.sh                     |  2 +-
 4 files changed, 49 insertions(+), 19 deletions(-)

diff --git a/README.org b/README.org
index 084a5f102a..5dd87c97c2 100644
--- a/README.org
+++ b/README.org
@@ -1,4 +1,4 @@
-* evil-matchit (v2.3.2)
+* evil-matchit (v2.3.3)
 
 
[[http://melpa.org/#/evil-matchit][file:http://melpa.org/packages/evil-matchit-badge.svg]]
 
[[http://stable.melpa.org/#/evil-matchit][file:http://stable.melpa.org/packages/evil-matchit-badge.svg]]
 
diff --git a/evil-matchit-javascript.el b/evil-matchit-javascript.el
index e5478a81b4..562f567799 100644
--- a/evil-matchit-javascript.el
+++ b/evil-matchit-javascript.el
@@ -28,6 +28,14 @@
 
 (require 'evil-matchit-sdk)
 
+;; should try next howto, the purpose is avoid missing any howto
+(defvar evilmi-javascript-extract-keyword-howtos
+  '(("const .* *= *\\(styled\\)[^`]*` *$" 1) ; styled component
+    ("^[ \t]*\\(`\\); *$" 1)))
+
+(defvar evilmi-javascript-match-tags
+  '((("styled") () "`")))
+
 (defvar evilmi-javascript-matching-chars
   (string-to-list "{[(}}])"))
 
@@ -54,22 +62,44 @@
 ;;;###autoload
 (defun evilmi-javascript-get-tag ()
   ;; only handle open tag
-  (cond
-   ((memq (following-char)
-          evilmi-javascript-matching-chars)
-    (list (point)))
-   (t
-    (let* ((r (evilmi--javascript-find-open-brace (evilmi-sdk-curline)))
-           (p (line-beginning-position)))
-      (when r
-        (forward-line (1- (car r)))
-        (search-forward (cadr r) nil nil)
-        (backward-char)
-        (list p))))))
+  (let* (rlt)
+    (cond
+     ;; bracket
+     ((memq (following-char)
+            evilmi-javascript-matching-chars)
+      (setq rlt (list (point))))
+
+     ;; use defined tag
+     ((setq rlt (evilmi-sdk-get-tag evilmi-javascript-match-tags
+                                    evilmi-javascript-extract-keyword-howtos))
+      ;; do nothing
+      )
+
+     ;; other javascript statements containing brackets
+     (t
+      (let* ((r (evilmi--javascript-find-open-brace (evilmi-sdk-curline)))
+             (p (line-beginning-position)))
+        (when r
+          (forward-line (1- (car r)))
+          (search-forward (cadr r) nil nil)
+          (backward-char)
+          (setq rlt (list p))))))
+    rlt))
 
 ;;;###autoload
-(defun evilmi-javascript-jump (rlt NUM)
-  (when rlt
+(defun evilmi-javascript-jump (rlt num)
+  "Jump to the matching tag using RLT and NUM."
+  (cond
+   ((not rlt)
+    ;; don nothing
+    )
+   ((evilmi-sdk-get-tag evilmi-javascript-match-tags
+                        evilmi-javascript-extract-keyword-howtos)
+    (evilmi-sdk-jump rlt
+                     num
+                     evilmi-javascript-match-tags
+                     evilmi-javascript-extract-keyword-howtos))
+   (t
     (evilmi--simple-jump)
     (let* ((cur-line (evilmi-sdk-curline)))
       ;; hack for javascript
@@ -77,6 +107,6 @@
               (string-match "^[ \t]*}\(.*\))\; *$" cur-line)
               (string-match "^[ \t]*}\])\; *$" cur-line))
           (line-end-position)
-        (1+ (point))))))
+        (1+ (point)))))))
 
 (provide 'evil-matchit-javascript)
diff --git a/evil-matchit.el b/evil-matchit.el
index e8a9944cfa..2841bac7ed 100644
--- a/evil-matchit.el
+++ b/evil-matchit.el
@@ -4,7 +4,7 @@
 
 ;; Author: Chen Bin <chenbin.sh@gmail.com>
 ;; URL: http://github.com/redguardtoo/evil-matchit
-;; Version: 2.3.2
+;; Version: 2.3.3
 ;; Keywords: matchit vim evil
 ;; Package-Requires: ((evil "1.2.0") (emacs "24.4"))
 ;;
@@ -455,7 +455,7 @@ If IS-FORWARD is t, jump forward; or else jump backward."
 ;;;###autoload
 (defun evilmi-version()
   (interactive)
-  (message "2.3.2"))
+  (message "2.3.3"))
 
 ;;;###autoload
 (define-minor-mode evil-matchit-mode
diff --git a/pkg.sh b/pkg.sh
index dfc8e57a03..26de8a61d8 100755
--- a/pkg.sh
+++ b/pkg.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 name=evil-matchit
-version=2.3.2
+version=2.3.3
 pkg=$name-$version
 mkdir $pkg
 cp README.org $pkg



reply via email to

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