26 ))) |
26 ))) |
27 |
27 |
28 (defun maven.parse-pom-dependency (&optional point) |
28 (defun maven.parse-pom-dependency (&optional point) |
29 (let (start end pos groupId artifactId version fs-o bs-o fs-c bs-c) |
29 (let (start end pos groupId artifactId version fs-o bs-o fs-c bs-c) |
30 (save-excursion |
30 (save-excursion |
31 (goto-char point) |
31 (if (looking-at "[^>]*<[^!]") |
32 (unless (eq (char-after) ?<) |
32 (progn (search-forward "<") (backward-char)) |
33 (search-backward "<")) |
33 (search-backward "<")) |
34 (setq point (point)) |
34 (setq point (point)) |
35 (when (re-search-forward "<\\(?:plugin\\|dependency\\)>" nil t) |
35 (when (re-search-forward "<\\(?:plugin\\|dependency\\)>" nil t) |
36 (setq fs-o (re-search-backward "<") nil t)) |
36 (setq fs-o (re-search-backward "<" nil t))) |
37 (goto-char point) |
37 (goto-char point) |
38 (setq bs-o (re-search-backward "<\\(?:plugin\\|dependency\\)>" nil t)) |
38 (setq bs-o (re-search-backward "<\\(?:plugin\\|dependency\\)>" nil t)) |
39 (goto-char point) |
39 (goto-char point) |
40 (setq fs-c (re-search-forward "</\\(?:plugin\\|dependency\\)>" nil t)) |
40 (setq fs-c (re-search-forward "</\\(?:plugin\\|dependency\\)>" nil t)) |
41 (goto-char point) |
41 (goto-char point) |
42 (when (re-search-backward "</\\(?:plugin\\|dependency\\)>" nil t) |
42 (when (re-search-backward "</\\(?:plugin\\|dependency\\)>" nil t) |
43 (setq bs-c (re-search-backward ">" nil t))) |
43 (setq bs-c (re-search-forward ">" nil t))) |
44 (cond |
44 (cond |
45 ((and fs-o (= fs-o point) fs-c) |
45 ((and fs-o (= fs-o point) fs-c) |
46 (maven.parse-pom-dependency-in-region fs-o fs-c)) |
46 (maven.parse-pom-dependency-in-region fs-o fs-c)) |
47 ((and bs-o (<= bs-o point) fs-c (<= point fs-c)) |
47 ((and bs-o (<= bs-o point) fs-c (<= point fs-c)) |
48 (maven.parse-pom-dependency-in-region bs-o fs-c)) |
48 (maven.parse-pom-dependency-in-region bs-o fs-c)) |