Parser for ivy dependencies.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Sat, 25 Mar 2017 11:59:34 +0300
changeset 1513 0da077ba84ab
parent 1512 59816a0cca92
child 1514 1ce5595fe5f1
Parser for ivy dependencies.
maven-central.el
--- a/maven-central.el	Sat Mar 25 11:18:21 2017 +0300
+++ b/maven-central.el	Sat Mar 25 11:59:34 2017 +0300
@@ -73,6 +73,48 @@
       (maven-central.versions groupId artifactId))
     ))
 
+(defun ivy.parse-dependency ()
+  (let ( end groupId artifactId )
+    (save-excursion
+      (if (looking-at "[^>]*<dependency ")
+          (progn (search-forward "<") (backward-char))
+        (search-backward "<dependency " nil t))
+      (when (re-search-forward "<dependency [^/]*/>")
+        (setq end (point))
+        (search-backward "<")
+        (save-restriction
+          (narrow-to-region (point) end)
+          (goto-char (point-min))
+          (when (re-search-forward "\\s-org\\s-*=\\s-*['\"]\\([^'\"]+\\)['\"]" nil t)
+            (setq groupId (match-string 1)))
+          (goto-char (point-min))
+          (when (re-search-forward "\\s-name\\s-*=\\s-*['\"]\\([^'\"]+\\)['\"]" nil t)
+            (setq artifactId (match-string 1)))
+          )))
+    (list groupId artifactId)))
+
+;;;###autoload
+(defun maven-central.last-version-from-ivy ()
+  (interactive)
+  (let (dependency groupId artifactId)
+    (setq dependency (ivy.parse-dependency))
+    (setq groupId (elt dependency 0))
+    (setq artifactId (elt dependency 1))
+    (when (and groupId artifactId)
+      (maven-central.last-version groupId artifactId))
+    ))
+
+;;;###autoload
+(defun maven-central.versions-from-ivy ()
+  (interactive)
+  (let (dependency groupId artifactId)
+    (setq dependency (ivy.parse-dependency))
+    (setq groupId (elt dependency 0))
+    (setq artifactId (elt dependency 1))
+    (when (and groupId artifactId)
+      (maven-central.versions groupId artifactId))
+    ))
+
 ;; (maven-central.last-version "junit" "junit")
 
 (provide 'maven-central)