Parser for ivy dependencies.
--- 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)