[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/evil-matchit 65b474bb02 031/244: Better C/C++, v1.2.2
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/evil-matchit 65b474bb02 031/244: Better C/C++, v1.2.2 |
Date: |
Thu, 6 Jan 2022 02:58:47 -0500 (EST) |
branch: elpa/evil-matchit
commit 65b474bb02f267604c80264e4e8327da459f4036
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>
Better C/C++, v1.2.2
- C macro is supported
- minor tweak for js
---
README.org | 8 +++----
evil-matchit-c.el | 63 ++++++++++++++++++-------------------------------
evil-matchit-pkg.el | 2 +-
evil-matchit-script.el | 6 ++---
evil-matchit-simple.el | 19 +++++++++++----
evil-matchit.el | 30 +++++++++++++----------
pkg.sh | 2 +-
screencast.gif | Bin 318348 -> 318348 bytes
8 files changed, 65 insertions(+), 65 deletions(-)
diff --git a/README.org b/README.org
index 20c06c4811..03939a382e 100644
--- a/README.org
+++ b/README.org
@@ -1,4 +1,4 @@
-* evil-matchit (current version 1.2.1)
+* evil-matchit (current version 1.2.2)
Vim [[http://www.vim.org/scripts/script.php?script_id=39][matchit.vim]] by
Benji Fisher ported into Emacs.
@@ -134,7 +134,7 @@ I attached the full content of evil-matchit-script.el here:
(require 'evil-matchit-sdk)
;; ruby/bash/lua/vimrc
-(defvar evilmi--script-match-tags
+(defvar evilmi-script-match-tags
'((("unless" "if") ("elif" "elsif" "elseif" "else") ( "end" "fi" "endif"))
("begin" ("rescue" "ensure") "end")
("case" ("when" "else") ("esac" "end"))
@@ -150,12 +150,12 @@ The third column contains the closed tags(s).
;;;###autoload
(defun evilmi-script-get-tag ()
- (evilmi-sdk-get-tag evilmi--script-match-tags
evilmi-sdk-extract-keyword-howtos)
+ (evilmi-sdk-get-tag evilmi-script-match-tags
evilmi-sdk-extract-keyword-howtos)
)
;;;###autoload
(defun evilmi-script-jump (rlt NUM)
- (evilmi-sdk-jump rlt NUM evilmi--script-match-tags
evilmi-sdk-extract-keyword-howtos)
+ (evilmi-sdk-jump rlt NUM evilmi-script-match-tags
evilmi-sdk-extract-keyword-howtos)
)
(provide 'evil-matchit-script)
diff --git a/evil-matchit-c.el b/evil-matchit-c.el
index ebdc5d68bf..05c9b2bcc2 100644
--- a/evil-matchit-c.el
+++ b/evil-matchit-c.el
@@ -1,4 +1,4 @@
-;;; evil-matchit-c.el ---c like language (c/c++/perl/java/javascript) plugin
of evil-matchit
+;;; evil-matchit-c.el --c like language (c/c++/perl/java/javascript) plugin of
evil-matchit
;; Copyright (C) 2013 Chen Bin <chenbin.sh@gmail.com>
@@ -25,56 +25,39 @@
;;; Code:
+(require 'evil-matchit-sdk)
-(require 'evil-matchit)
+;; ruby/bash/lua/vimrc
+(defvar evilmi-c-match-tags
+ '((("#ifdef" "#ifndef" "#if") ("#elif" "#else") "#endif")
+ )
+ "The table we look up match tags. This is a three column table.
+The first column contains the open tag(s).
+The second column contains the middle tag(s).
+The third column contains the closed tags(s).
+"
+ )
-(defun evilmi--c-find-open-brace (cur-line)
- (let (rlt)
- (if (string-match "^[ \t]* [a-zA-Z0-9]+.*[{] *$" cur-line)
- (setq rlt 1)
- (save-excursion
- (forward-line)
- (setq cur-line (buffer-substring-no-properties
- (line-beginning-position) (line-end-position)))
- (if (string-match "^[ \t]*{ *$" cur-line)
- (setq rlt 2)
- )
- )
- )
- rlt
+(defvar evilmi-c-extract-keyword-howtos
+ '(("^[ \t]*\\(#[a-z]+\\)\\( .*\\| *\\)$" 1)
)
+
+ "The list of HOWTO on extracting keyword from current line.
+Each howto is actually a pair. The first element of pair is the regular
+expression to match the current line. The second is the index of sub-matches
+to extract the keyword which starts from one. The sub-match is the match
defined
+between '\\(' and '\\)' in regular expression.
+"
)
;;;###autoload
(defun evilmi-c-get-tag ()
- (let (p
- forward-line-num
- rlt
- (cur-line (buffer-substring-no-properties
- (line-beginning-position) (line-end-position)))
- )
-
- ;; only handle open tag
- (if (not (memq (following-char) (string-to-list "{[(}}])")))
- (if (setq forward-line-num (evilmi--c-find-open-brace cur-line))
- (when forward-line-num
- (setq p (line-beginning-position))
- (forward-line (1- forward-line-num))
- (search-forward "{" nil nil)
- (backward-char)
- (setq rlt (list p))
- )
- )
- (setq rlt (list (point)))
- )
- rlt
- )
+ (evilmi-sdk-get-tag evilmi-c-match-tags evilmi-c-extract-keyword-howtos)
)
;;;###autoload
(defun evilmi-c-jump (rlt NUM)
- (if rlt (evil-jump-item))
- (1+ (point))
+ (evilmi-sdk-jump rlt NUM evilmi-c-match-tags evilmi-c-extract-keyword-howtos)
)
(provide 'evil-matchit-c)
\ No newline at end of file
diff --git a/evil-matchit-pkg.el b/evil-matchit-pkg.el
index 5b601ba8d7..fcb225a24a 100644
--- a/evil-matchit-pkg.el
+++ b/evil-matchit-pkg.el
@@ -1,2 +1,2 @@
-(define-package "evil-matchit" "1.2.1"
+(define-package "evil-matchit" "1.2.2"
"Vim matchit ported into Emacs (requires EVIL)")
diff --git a/evil-matchit-script.el b/evil-matchit-script.el
index f0fbee8bb0..84881ce36f 100644
--- a/evil-matchit-script.el
+++ b/evil-matchit-script.el
@@ -32,7 +32,7 @@
(require 'evil-matchit-sdk)
;; ruby/bash/lua/vimrc
-(defvar evilmi--script-match-tags
+(defvar evilmi-script-match-tags
'((("unless" "if") ("elif" "elsif" "elseif" "else") ( "end" "fi" "endif"))
("begin" ("rescue" "ensure") "end")
("case" ("when" "else") ("esac" "end"))
@@ -48,12 +48,12 @@ The third column contains the closed tags(s).
;;;###autoload
(defun evilmi-script-get-tag ()
- (evilmi-sdk-get-tag evilmi--script-match-tags
evilmi-sdk-extract-keyword-howtos)
+ (evilmi-sdk-get-tag evilmi-script-match-tags
evilmi-sdk-extract-keyword-howtos)
)
;;;###autoload
(defun evilmi-script-jump (rlt NUM)
- (evilmi-sdk-jump rlt NUM evilmi--script-match-tags
evilmi-sdk-extract-keyword-howtos)
+ (evilmi-sdk-jump rlt NUM evilmi-script-match-tags
evilmi-sdk-extract-keyword-howtos)
)
(provide 'evil-matchit-script)
\ No newline at end of file
diff --git a/evil-matchit-simple.el b/evil-matchit-simple.el
index 960004d368..89c7484608 100644
--- a/evil-matchit-simple.el
+++ b/evil-matchit-simple.el
@@ -30,7 +30,7 @@
(defun evilmi--simple-find-open-brace (cur-line)
(let (rlt)
- (if (string-match "^[ \t]*[a-zA-Z0-9]+.*{ *$" cur-line)
+ (if (string-match "^[ \t]*\(?[a-zA-Z0-9]+.*{ *$" cur-line)
(setq rlt 1)
(save-excursion
(forward-line)
@@ -73,8 +73,19 @@
;;;###autoload
(defun evilmi-simple-jump (rlt NUM)
- (if rlt (evil-jump-item))
- (1+ (point))
- )
+ (let (cur-line)
+ (when rlt
+ (evil-jump-item)
+
+ (setq cur-line (buffer-substring-no-properties
+ (line-beginning-position)
+ (line-end-position)))
+ ;; hack for javascript
+ (if (string-match "^[ \t]*})(.*)\; *$" cur-line)
+ (line-end-position)
+ (1+ (point))
+ )
+ )
+ ))
(provide 'evil-matchit-simple)
\ No newline at end of file
diff --git a/evil-matchit.el b/evil-matchit.el
index 5b48d080db..5c29515b51 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: 1.2.1
+;; Version: 1.2.2
;; Keywords: matchit vim evil
;; Package-Requires: ((evil "1.0.7"))
;;
@@ -83,7 +83,16 @@
(defun evilmi-init-plugins ()
(interactive)
- ;; html
+
+ ;; simple matching for languages containing "{(["
+ (autoload 'evilmi-simple-get-tag "evil-matchit-simple" nil t)
+ (autoload 'evilmi-simple-jump "evil-matchit-simple" nil t)
+ (mapc (lambda (mode)
+ (plist-put evilmi-plugins mode '((evilmi-simple-get-tag
evilmi-simple-jump)))
+ )
+ '(java-mode js-mode js2-mode javascript-mode perl-mode cperl-mode))
+
+ ;; Html
(autoload 'evilmi-html-get-tag "evil-matchit-html" nil t)
(autoload 'evilmi-html-jump "evil-matchit-html" nil t)
(mapc (lambda (mode)
@@ -92,30 +101,27 @@
)
'(web-mode html-mode nxml-mode nxhtml-mode sgml-mode))
- ;; simple matching for languages containing "{(["
- (autoload 'evilmi-simple-get-tag "evil-matchit-simple" nil t)
- (autoload 'evilmi-simple-jump "evil-matchit-simple" nil t)
-
- ;; latex
+ ;; Latex
(autoload 'evilmi-latex-get-tag "evil-matchit-latex" nil t)
(autoload 'evilmi-latex-jump "evil-matchit-latex" nil t)
(plist-put evilmi-plugins 'latex-mode '((evilmi-latex-get-tag
evilmi-latex-jump)))
- ;; python
+ ;; Python
(autoload 'evilmi-python-get-tag "evil-matchit-python" nil t)
(autoload 'evilmi-python-jump "evil-matchit-python" nil t)
(plist-put evilmi-plugins 'python-mode '((evilmi-simple-get-tag
evilmi-simple-jump)
(evilmi-python-get-tag
evilmi-python-jump)))
- ;; c like language (c/c++/perl/java/javascript)
+ ;; C/C++
(autoload 'evilmi-c-get-tag "evil-matchit-c" nil t)
(autoload 'evilmi-c-jump "evil-matchit-c" nil t)
(mapc (lambda (mode)
- (plist-put evilmi-plugins mode '((evilmi-c-get-tag evilmi-c-jump)))
+ (plist-put evilmi-plugins mode '((evilmi-simple-get-tag
evilmi-simple-jump)
+ (evilmi-c-get-tag evilmi-c-jump)))
)
- '(c-mode c++-mode java-mode js-mode js2-mode javascript-mode perl-mode
cperl-mode))
+ '(c-mode c++-mode))
- ;; script language (bash/lua/ruby)
+ ;; Bash/Lua/Ruby ... any normal script languages
(autoload 'evilmi-script-get-tag "evil-matchit-script" nil t)
(autoload 'evilmi-script-jump "evil-matchit-script" nil t)
(mapc (lambda (mode)
diff --git a/pkg.sh b/pkg.sh
index b9814bf22a..ef7ec2414a 100755
--- a/pkg.sh
+++ b/pkg.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-pkg=evil-matchit-1.2.1
+pkg=evil-matchit-1.2.2
mkdir $pkg
cp README.org $pkg
cp *.el $pkg
diff --git a/screencast.gif b/screencast.gif
index 918426b854..be0908372c 100644
Binary files a/screencast.gif and b/screencast.gif differ
- [nongnu] elpa/evil-matchit a837c1897e 006/244: tweak README, (continued)
- [nongnu] elpa/evil-matchit a837c1897e 006/244: tweak README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 05f80aacf2 004/244: Declare package dependency on evil, improve package description, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 808f226b2e 002/244: updated doc, v0.0.2, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 9ed81c8b78 014/244: fixed typo in README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 03f46e4006 001/244: first import, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit fc1731e8b2 013/244: updated doc, hotkey set up, v0.0.5, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit eb5e0bedc6 021/244: select/delete matching tags in C v1.0.2, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 748647d518 017/244: dependent on sgml-mode, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit cfcf0d083c 022/244: weak README, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 90c8367856 027/244: add sdk v1.2.0, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 65b474bb02 031/244: Better C/C++, v1.2.2,
ELPA Syncer <=
- [nongnu] elpa/evil-matchit 3b64df7610 005/244: Merge pull request #3 from purcell/patch-1, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 363b6683ab 033/244: ignore elisp flymake file, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 4f993303e1 044/244: delete leading spaces AND matched tags v1.2.9, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit dd3d90bf95 010/244: Fix malformed header line, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 285f5c2413 024/244: udpated doc and screencast, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit c65da39f49 016/244: autoload sgml-mode, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit b75893af9e 028/244: minor bug in latex-mode, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit acc7efbd8d 034/244: minor bugs fixed v1.2.3, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit 78cc0335de 035/244: support latex mode, v1.2.4, ELPA Syncer, 2022/01/06
- [nongnu] elpa/evil-matchit e81d779541 046/244: support Emacs email (message-mode), ELPA Syncer, 2022/01/06