[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/javaimp-wip 71be533: wip
From: |
Filipp Gunbin |
Subject: |
[elpa] scratch/javaimp-wip 71be533: wip |
Date: |
Tue, 3 Aug 2021 19:37:39 -0400 (EDT) |
branch: scratch/javaimp-wip
commit 71be533317e07b0fa42729225d3eab41f6576fe4
Author: Filipp Gunbin <fgunbin@fastmail.fm>
Commit: Filipp Gunbin <fgunbin@fastmail.fm>
wip
---
javaimp-tests.el | 135 ++++++++++++++++++++-------------------
javaimp-util.el | 22 ++++---
javaimp.el | 39 ++++++-----
testdata/test1-misc-classes.java | 9 ++-
4 files changed, 107 insertions(+), 98 deletions(-)
diff --git a/javaimp-tests.el b/javaimp-tests.el
index b4788e2..d84a131 100644
--- a/javaimp-tests.el
+++ b/javaimp-tests.el
@@ -224,61 +224,63 @@ throws E1 {"
(expected
'(((class "Top"))
((class "CInner1") (class "Top"))
- ((method "foo") (class "CInner1") (class "Top"))
+ ((method "foo()") (class "CInner1") (class "Top"))
((local-class "CInner1_CLocal1")
- (method "foo") (class "CInner1") (class "Top"))
- ((method "foo")
+ (method "foo()") (class "CInner1") (class "Top"))
+ ((method "foo()")
(local-class "CInner1_CLocal1")
- (method "foo") (class "CInner1") (class "Top"))
+ (method "foo()") (class "CInner1") (class "Top"))
((local-class "CInner1_CLocal1_CLocal1")
- (method "foo")
+ (method "foo()")
(local-class "CInner1_CLocal1")
- (method "foo") (class "CInner1") (class "Top"))
- ((method "foo")
+ (method "foo()") (class "CInner1") (class "Top"))
+ ((method "foo()")
(local-class "CInner1_CLocal1_CLocal1")
- (method "foo")
+ (method "foo()")
(local-class "CInner1_CLocal1")
- (method "foo") (class "CInner1") (class "Top"))
+ (method "foo()") (class "CInner1") (class "Top"))
((local-class "CInner1_CLocal2")
- (method "foo") (class "CInner1") (class "Top"))
- ((method "foo")
+ (method "foo()") (class "CInner1") (class "Top"))
+ ((method "foo()")
(local-class "CInner1_CLocal2")
- (method "foo") (class "CInner1") (class "Top"))
+ (method "foo()") (class "CInner1") (class "Top"))
((class "CInner1_CInner") (class "CInner1") (class "Top"))
- ((method "foo")
+ ((method "foo()")
(class "CInner1_CInner") (class "CInner1") (class "Top"))
- ((method "bar")
+ ((method "bar()")
(class "CInner1_CInner") (class "CInner1") (class "Top"))
((interface "IInner1") (class "Top"))
- ((method "foo") (interface "IInner1") (class "Top"))
+ ((method "foo()") (interface "IInner1") (class "Top"))
((class "IInner1_CInner1") (interface "IInner1") (class "Top"))
- ((method "foo")
+ ((method "foo()")
(class "IInner1_CInner1") (interface "IInner1") (class "Top"))
- ((method "defaultMethod") (interface "IInner1") (class "Top"))
+ ((method "defaultMethod(String, String)")
+ (interface "IInner1") (class "Top"))
((interface "IInner1_IInner1") (interface "IInner1") (class "Top"))
- ((method "defaultMethod")
+ ((method "defaultMethod(String, String)")
(interface "IInner1_IInner1") (interface "IInner1") (class "Top"))
((enum "EnumInner1") (class "Top"))
((method "EnumInner1") (enum "EnumInner1") (class "Top"))
- ((method "foo") (enum "EnumInner1") (class "Top"))
+ ((method "foo()") (enum "EnumInner1") (class "Top"))
((enum "EnumInner1_EInner1") (enum "EnumInner1") (class "Top"))
((class "ColocatedTop"))
- ((method "foo") (class "ColocatedTop")))))
+ ((method "foo()") (class "ColocatedTop"))
+ ((method "bar(String, String)") (class "ColocatedTop")))))
(should (= (length expected) (length actual)))
(dotimes (i (length expected))
(should (equal (nth i expected) (nth i actual)))))
;;
(let ((data
`((,(nth 0 scopes) "Top" 26 36)
- (,(nth 15 scopes) "Top.IInner1.IInner1_CInner1.foo" 1810 1816)
- (,(nth 22 scopes) "Top.EnumInner1_EInner1" 2452 2476)
- (,(nth 24 scopes) "ColocatedTop.foo" 2544 2550))))
+ (,(nth 15 scopes) "Top.IInner1.IInner1_CInner1.foo" 1798 1804)
+ (,(nth 22 scopes) "Top.EnumInner1_EInner1" 24574 2498)
+ (,(nth 24 scopes) "ColocatedTop.foo" 2566 2572))))
(dolist (elt data)
(let ((scope (nth 0 elt)))
(should (equal (nth 1 elt) (javaimp-scope-name scope)))
@@ -297,24 +299,25 @@ throws E1 {"
actual
'(("Top"
("CInner1"
- ("foo" . 98)
+ ("foo()" . 98)
("CInner1_CInner1"
- ("foo" . 1099)
- ("bar" . 1192)))
+ ("foo()" . 1099)
+ ("bar()" . 1192)))
("IInner1"
- ("foo" . 1603)
+ ("foo()" . 1603)
("IInner1_CInner1"
- ("foo" . 1810))
- ("defaultMethod" . 1975)
+ ("foo()" . 1810))
+ ("defaultMethod(String)" . 1975)
("IInner1_IInner1"
- ("defaultMethod" . 2158)))
+ ("defaultMethod(String)" . 2169)))
("EnumInner1"
- ("EnumInner1" . 2343)
- ("foo" . 2389)
- ;; "EnumInner1_EInner1" empty - omitted
+ ("EnumInner1()" . 2365)
+ ("foo()" . 2411)
+ ;; "EnumInner1_EInner1" omitted because no methods inside
))
("ColocatedTop"
- ("foo" . 2544)))))))
+ ("foo()" . 2566)
+ ("bar(String, String)" . 2578)))))))
(ert-deftest javaimp-test--imenu-simple ()
(let* ((javaimp-imenu-group-methods nil)
@@ -322,46 +325,50 @@ throws E1 {"
(should
(equal
actual
- '(("foo (Top.CInner1)" . 98)
- ("foo (Top.CInner1.CInner1_CInner1)" . 1099)
- ("bar" . 1192)
- ("foo (Top.IInner1)" . 1603)
- ("foo (Top.IInner1.IInner1_CInner1)" . 1810)
- ("defaultMethod (Top.IInner1)" . 1975)
- ("defaultMethod (Top.IInner1.IInner1_IInner1)" . 2158)
- ("EnumInner1" . 2343)
- ("foo (Top.EnumInner1)" . 2389)
- ("foo (ColocatedTop)" . 2544))))))
+ '(("foo() [Top.CInner1]" . 98)
+ ("foo() [Top.CInner1.CInner1_CInner1]" . 1099)
+ ("bar()" . 1192)
+ ("foo() [Top.IInner1]" . 1603)
+ ("foo() [Top.IInner1.IInner1_CInner1]" . 1810)
+ ("defaultMethod(String) [Top.IInner1]" . 1975)
+ ("defaultMethod(String) [Top.IInner1.IInner1_IInner1]" . 2169)
+ ("EnumInner1()" . 2365)
+ ("foo() [Top.EnumInner1]" . 2411)
+ ("foo() [ColocatedTop]" . 2566)
+ ("bar(String, String)" . 2578))))))
(ert-deftest javaimp-test--imenu-qualified ()
(let* ((javaimp-imenu-group-methods 'qualified)
- (actual
- (mapcar (lambda (entry)
-
- (javaimp-test--imenu-get-index)))
+ (actual (javaimp-test--imenu-get-index)))
(should
(equal
-
- (lambda (s)
- (cons (javaimp-scope-name entry) (javaimp-scope-start entry)))
-
-
actual
- '(("Top.CInner1.foo" . 98)
- ("Top.CInner1.CInner1_CInner1.foo" . 1099)
- ("Top.CInner1.CInner1_CInner1.bar" . 1192)
- ("Top.IInner1.foo" . 1603)
- ("Top.IInner1.IInner1_CInner1.foo" . 1810)
- ("Top.IInner1.defaultMethod" . 1975)
- ("Top.IInner1.IInner1_IInner1.defaultMethod" . 2158)
- ("Top.EnumInner1.EnumInner1" . 2343)
- ("Top.EnumInner1.foo" . 2389)
- ("ColocatedTop.foo" . 2544))))))
+ '(("Top.CInner1.foo()" . 98)
+ ("Top.CInner1.CInner1_CInner1.foo()" . 1099)
+ ("Top.CInner1.CInner1_CInner1.bar()" . 1192)
+ ("Top.IInner1.foo()" . 1603)
+ ("Top.IInner1.IInner1_CInner1.foo()" . 1810)
+ ("Top.IInner1.defaultMethod(String)" . 1975)
+ ("Top.IInner1.IInner1_IInner1.defaultMethod(String)" . 2169)
+ ("Top.EnumInner1.EnumInner1()" . 2365)
+ ("Top.EnumInner1.foo()" . 2411)
+ ("ColocatedTop.foo()" . 2566)
+ ("ColocatedTop.bar(String, String)" . 2578))))))
(defun javaimp-test--imenu-get-index ()
(with-temp-buffer
(insert-file-contents
(concat javaimp--basedir "testdata/test1-misc-classes.java"))
- (javaimp-imenu-create-index)))
+ (let* ((javaimp-parse-format-method-name
+ javaimp--parse-format-method-name-types)
+ (alist (javaimp-imenu-create-index)))
+ (javaimp-test--imenu-simplify-entries alist))))
+
+(defun javaimp-test--imenu-simplify-entries (alist)
+ (dolist (elt alist)
+ (if (and (= (length elt) 4)
+ (functionp (nth 2 elt)))
+ (setcdr elt (nth 1 elt))
+ (javaimp-test--imenu-simplify-entries (cdr elt)))))
(provide 'javaimp-tests)
diff --git a/javaimp-util.el b/javaimp-util.el
index 1bf2a79..25dd12d 100644
--- a/javaimp-util.el
+++ b/javaimp-util.el
@@ -160,9 +160,9 @@ PARENT-NODE is indented for recursive calls."
(defun javaimp--find-node (pred forest &optional unwrap)
(catch 'found
(dolist (tree forest)
- (javaimp--find-node-in-tree-1 tree pred unwrap))))
+ (javaimp--find-node-in-tree tree pred unwrap))))
-(defun javaimp--find-node-in-tree-1 (tree pred unwrap)
+(defun javaimp--find-node-in-tree (tree pred unwrap)
(when tree
(if (funcall pred (javaimp-node-contents tree))
(throw 'found
@@ -170,23 +170,25 @@ PARENT-NODE is indented for recursive calls."
(javaimp-node-contents tree)
tree)))
(dolist (child (javaimp-node-children tree))
- (javaimp--find-node-in-tree-1 child pred unwrap))))
+ (javaimp--find-node-in-tree child pred unwrap))))
(defun javaimp--collect-nodes (pred forest)
(apply #'seq-concatenate 'list
(mapcar (lambda (tree)
- (javaimp--collect-nodes-from-tree tree pred))
+ (delq nil
+ (javaimp--collect-nodes-from-tree tree pred)))
forest)))
(defun javaimp--collect-nodes-from-tree (tree pred)
(when tree
- (append (when (funcall pred (javaimp-node-contents tree))
- (list (javaimp-node-contents tree)))
- (apply #'seq-concatenate 'list
- (mapcar (lambda (child)
- (javaimp--collect-nodes-from-tree child pred))
- (javaimp-node-children tree))))))
+ (cons (and (funcall pred (javaimp-node-contents tree))
+ (javaimp-node-contents tree))
+ (apply #'seq-concatenate 'list
+ (mapcar (lambda (child)
+ (delq nil
+ (javaimp--collect-nodes-from-tree child pred)))
+ (javaimp-node-children tree))))))
(defun javaimp--map-nodes (mapper pred forest)
diff --git a/javaimp.el b/javaimp.el
index 86b16cd..3585e32 100644
--- a/javaimp.el
+++ b/javaimp.el
@@ -578,10 +578,10 @@ is `ordinary' or `static'. Interactively, NEW-IMPORTS is
nil."
(javaimp--collect-nodes
#'javaimp-imenu--included-method forest))))
(mapcar (lambda (entry)
- ;; disambiguate similar method names
+ ;; disambiguate same method names
(when (assoc (car entry) entries)
(setcar entry
- (format "%s (%s)"
+ (format "%s [%s]"
(car entry)
(javaimp-imenu--concat-parent-names
(nth 3 entry))))))
@@ -620,31 +620,16 @@ is `ordinary' or `static'. Interactively, NEW-IMPORTS is
nil."
#'javaimp-imenu--go
scope))
+(defun javaimp-imenu--go (scope)
+ (goto-char (javaimp-scope-start scope))
+ (back-to-indentation))
+
(defun javaimp-imenu--concat-parent-names (scope)
(let (parents)
(while (setq scope (javaimp-scope-parent scope))
(push scope parents))
(mapconcat #'javaimp-scope-name parents ".")))
-
-(defun javaimp-imenu--go (scope)
- (goto-char (javaimp-scope-start scope))
- (back-to-indentation))
-
-
-
-;; Misc
-
-(defun javaimp-reset (arg)
- "Forget loaded trees state. With prefix arg, also reset jars
-cache."
- (interactive "P")
- (setq javaimp-project-forest nil
- javaimp--jdk-classes 'need-init)
- (when arg
- (setq javaimp-cached-jars nil)))
-
-
;; Help
@@ -713,6 +698,18 @@ scopes cache."
(setq buffer-read-only t))
(display-buffer buf)))
+
+;; Misc
+
+(defun javaimp-reset (arg)
+ "Forget loaded trees state. With prefix arg, also reset jars
+cache."
+ (interactive "P")
+ (setq javaimp-project-forest nil
+ javaimp--jdk-classes 'need-init)
+ (when arg
+ (setq javaimp-cached-jars nil)))
+
(provide 'javaimp)
;;; javaimp.el ends here
diff --git a/testdata/test1-misc-classes.java b/testdata/test1-misc-classes.java
index d916221..c010604 100644
--- a/testdata/test1-misc-classes.java
+++ b/testdata/test1-misc-classes.java
@@ -72,7 +72,7 @@ public class Top {
}
}
- String bar(String arg1, String arg2);
+ String abstract_method();
static class IInner1_CInner1 {
public void foo() {
@@ -84,14 +84,14 @@ public class Top {
void baz();
- default void defaultMethod() {
+ default void defaultMethod(String arg1) {
System.out.println("");
}
interface IInner1_IInner1 extends A<B, C>, Serializable {
void foo();
- default String defaultMethod() {
+ default String defaultMethod(String arg2) {
System.out.println("");
}
@@ -119,4 +119,7 @@ public class Top {
class ColocatedTop {
void foo() {
}
+
+ void bar(String arg1, String arg2) {
+ }
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] scratch/javaimp-wip 71be533: wip,
Filipp Gunbin <=