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

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

[nongnu] elpa/evil-nerd-commenter d1a5c9cd63 188/235: org v9.1 changed a


From: ELPA Syncer
Subject: [nongnu] elpa/evil-nerd-commenter d1a5c9cd63 188/235: org v9.1 changed api to get language of src_block
Date: Thu, 6 Jan 2022 02:59:47 -0500 (EST)

branch: elpa/evil-nerd-commenter
commit d1a5c9cd63dcb8c22dc27d657926efb4b673a7f4
Author: Chen Bin <chenbin.sh@gmail.com>
Commit: Chen Bin <chenbin.sh@gmail.com>

    org v9.1 changed api to get language of src_block
---
 Makefile                     |  4 +---
 README.org                   |  2 +-
 evil-nerd-commenter-tests.el | 19 ++++++++++++++++--
 evil-nerd-commenter.el       | 48 +++++++++++++++++++++++++++-----------------
 pkg.sh                       |  2 +-
 5 files changed, 50 insertions(+), 25 deletions(-)

diff --git a/Makefile b/Makefile
index af3245c7d4..d4acfa32a4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
 SHELL = /bin/sh
 EMACS ?= emacs
-FILES = $(filter-out evil-test-helpers.el evil-tests.el evil-pkg.el,$(wildcard 
evil*.el))
 PROFILER =
 
 .PHONY: test
@@ -12,6 +11,5 @@ clean:
        rm -f *.elc
 
 # Run tests.
-test:
+test: clean
        $(EMACS) -batch -Q -l evil-nerd-commenter-sdk.el -l 
evil-nerd-commenter.el -l evil-nerd-commenter-tests.el
-       rm -f *.elc .depend
\ No newline at end of file
diff --git a/README.org b/README.org
index c0f8767e52..dd40ee4617 100644
--- a/README.org
+++ b/README.org
@@ -1,4 +1,4 @@
-* evil-nerd-commenter (v3.3.4)
+* evil-nerd-commenter (v3.3.5)
 
 
[[https://travis-ci.org/redguardtoo/evil-nerd-commenter][https://travis-ci.org/redguardtoo/evil-nerd-commenter.svg?branch=master]]
 
[[http://melpa.org/#/evil-nerd-commenter][file:http://melpa.org/packages/evil-nerd-commenter-badge.svg]]
 
[[http://stable.melpa.org/#/evil-nerd-commenter][file:http://stable.melpa.org/packages/evil-nerd-commenter-badge.svg]]
diff --git a/evil-nerd-commenter-tests.el b/evil-nerd-commenter-tests.el
index c6f301c7c8..c6ffb927b3 100644
--- a/evil-nerd-commenter-tests.el
+++ b/evil-nerd-commenter-tests.el
@@ -98,7 +98,22 @@
       (setq lines (evilnc-get-lines (point-min) (point-max)))
       (should (string= (nth 0 lines) "<div class=\"box\">"))
       (should (string= (nth 1 lines) "hello world"))
-      (should (string= (nth 2 lines) "</div>"))
-      )))
+      (should (string= (nth 2 lines) "</div>")))))
+
+(ert-deftest evilnc-test-org-src-block ()
+  (let* (lang-f)
+    (with-temp-buffer
+      (insert "* hello\n"
+              "** world\n"
+              "#+BEGIN_SRC python\n"
+              "def f():"
+              "    print 'hello world'\n"
+              "    print 'bye wrold'\n"
+              "#+END_SRC\n")
+      (org-mode)
+      (goto-char (point-min))
+      (re-search-forward "print 'hello world'")
+      (setq lang-f (evilnc--org-lang-major-mode))
+      (should (string= lang-f "python-mode")))))
 
 (ert-run-tests-batch-and-exit)
diff --git a/evil-nerd-commenter.el b/evil-nerd-commenter.el
index 647f5c6a97..837c37fd51 100644
--- a/evil-nerd-commenter.el
+++ b/evil-nerd-commenter.el
@@ -3,7 +3,7 @@
 ;; Author: Chen Bin <chenbin.sh@gmail.com>
 
 ;; URL: http://github.com/redguardtoo/evil-nerd-commenter
-;; Version: 3.3.4
+;; Version: 3.3.5
 ;; Package-Requires: ((emacs "24.4"))
 ;; Keywords: commenter vim line evil
 ;;
@@ -312,34 +312,45 @@ See 
http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-03/msg00891.html.";
 (declare-function org-show-subtree "org")
 (declare-function outline-up-heading "outline")
 
+(defun evilnc--org-lang-major-mode ()
+  "Get `major-mode' for language of org source block."
+  (let* (info lang lang-f)
+    (when (eq major-mode 'org-mode)
+      (cond
+       ;; Emacs 24.4+
+       ((fboundp 'org-edit-src-find-region-and-lang)
+        (setq info (org-edit-src-find-region-and-lang))
+        (when info
+          (setq lang (or (cdr (assoc (nth 2 info) org-src-lang-modes))
+                         (nth 2 info)))))
+
+       ;; Emacs 26.1
+       ((fboundp 'org-element-at-point)
+        (setq lang (org-element-property :language (org-element-at-point))))))
+    (when lang
+      (setq lang (if (symbolp lang) (symbol-name lang) lang))
+      (setq lang-f (intern (concat lang "-mode"))))
+    lang-f))
+
 (defun evilnc--working-on-region (beg end fn)
   "Region from BEG to END is applied with operation FN.
 Code snippets embedded in Org-mode is identified and right `major-mode' is 
used."
   (let* (pos
-         info
-         lang
-         lang-f
+         (lang-f (evilnc--org-lang-major-mode))
          old-flag)
-    (when (and (eq major-mode 'org-mode)
-               (fboundp 'org-edit-src-find-region-and-lang))
-      (setq info (funcall 'org-edit-src-find-region-and-lang)))
-
-    (when info
-      (setq lang (or (cdr (assoc (nth 2 info) org-src-lang-modes))
-                     (nth 2 info)))
-      (setq lang (if (symbolp lang) (symbol-name lang) lang))
-      (setq lang-f (intern (concat lang "-mode"))))
 
     ;; turn on 3rd party language's major-mode temporarily
     (if lang-f (funcall lang-f))
 
-    (if evilnc-invert-comment-line-by-line
-        (evilnc--invert-comment beg end)
+    (cond
+     (evilnc-invert-comment-line-by-line
+      (evilnc--invert-comment beg end))
+     (t
       (setq pos (point))
       (funcall fn beg end)
-      (goto-char pos))
+      (goto-char pos)))
 
-    ;; turn off  3rd party language's major-mode temporarily and clean the shit
+    ;; turn off  3rd party language's major-mode and clean up
     (when lang-f
       ;; avoid org file automatically collapsed
       (setq pos (point))
@@ -351,6 +362,7 @@ Code snippets embedded in Org-mode is identified and right 
`major-mode' is used.
          (message "in the beginning ...")))
       ;; expand current node because by default (org-mode) will collapse all 
nodes
       (org-show-subtree)
+      ;; goto original point before commenting
       (goto-char pos))))
 
 (declare-function web-mode-comment-or-uncomment "ext:web-mode")
@@ -711,7 +723,7 @@ Then we operate the expanded region.  NUM is ignored."
 (defun evilnc-version ()
   "The version number."
   (interactive)
-  (message "3.3.4"))
+  (message "3.3.5"))
 
 (defvar evil-normal-state-map)
 (defvar evil-visual-state-map)
diff --git a/pkg.sh b/pkg.sh
index 6e1f94b51c..d757997cd3 100755
--- a/pkg.sh
+++ b/pkg.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 name=evil-nerd-commenter
-version=3.3.4
+version=3.3.5
 pkg=$name-$version
 mkdir $pkg
 cp *.el $pkg



reply via email to

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