[-- Attachment #1: Type: text/plain, Size: 225 bytes --] Hey, I found this case: #+BEGIN_SRC java import static java.lang.System.*; out.println("Hejsan"); #+END_SRC And it seems to me that the import regex dont see the asterisk. I attached a possible patch. Stay safe! [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ob-java-Allow-import-to-end-with-asterisk.patch --] [-- Type: text/x-patch, Size: 1082 bytes --] From a9c37a8a56fd1f91f4a2789b0d7d983fec9a2c1f Mon Sep 17 00:00:00 2001 From: John Herrlin <jherrlin@gmail.com> Date: Tue, 26 Jan 2021 08:19:19 +0100 Subject: [PATCH] ob-java: Allow import to end with asterisk * lisp/ob-java.el (org-babel-java--imports-re): Allow import to end with asterisk. TINYCHANGE --- lisp/ob-java.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ob-java.el b/lisp/ob-java.el index 07ff8e9ab..b205eacd6 100644 --- a/lisp/ob-java.el +++ b/lisp/ob-java.el @@ -88,7 +88,7 @@ like javac -verbose." "Regexp for the package statement.") (defconst org-babel-java--imports-re (rx line-start (0+ space) "import" (opt (1+ space) "static") - (1+ space) (group (1+ (in alnum ?_ ?.))) ; capture the fully qualified class name + (1+ space) (group (1+ (in alnum ?_ ?. ?*))) ; capture the fully qualified class name (0+ space) ?\; line-end) "Regexp for import statements.") (defconst org-babel-java--class-re (rx line-start (0+ space) (opt (seq "public" (1+ space))) -- 2.30.0
> I found this case: > And it seems to me that the import regex dont see the asterisk. > > I attached a possible patch. Thanks again, John. You're right the regex is missing the asterisk include. Thanks for the patch fixing. This works but it will add redundant includes if the source block includes something that is also in the list of classes to automatically include. for example, this: #+begin_src java :results value import java.util.*; return "test"; #+end_src will end up pulling in import java.util.List; import java.util.*; It wouldn't hurt anything, but could probably be prevented by changing the regexp in =org-babel-java--import-maybe= to look for asterisk as well as =class=. Do you feel like updating the patch? [1] https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-java.el#L314
Thank you for the guidence! I will try to figure it out and sending a
updated patch soon.
ian martins <ianxm@jhu.edu> writes:
>> I found this case:
>> And it seems to me that the import regex dont see the asterisk.
>>
>> I attached a possible patch.
>
> Thanks again, John. You're right the regex is missing the asterisk
> include. Thanks for the patch fixing. This works but it will add
> redundant includes if the source block includes something that is also
> in the list of classes to automatically include.
>
> for example, this:
>
> #+begin_src java :results value
> import java.util.*;
> return "test";
> #+end_src
>
> will end up pulling in
>
> import java.util.List;
> import java.util.*;
>
> It wouldn't hurt anything, but could probably be prevented by changing
> the regexp in =org-babel-java--import-maybe= to look for asterisk as
> well as =class=. Do you feel like updating the patch?
>
> [1] https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-java.el#L314
[-- Attachment #1: Type: text/plain, Size: 1119 bytes --] ian martins <ianxm@jhu.edu> writes: >> I found this case: >> And it seems to me that the import regex dont see the asterisk. >> >> I attached a possible patch. > > Thanks again, John. You're right the regex is missing the asterisk > include. Thanks for the patch fixing. This works but it will add > redundant includes if the source block includes something that is also > in the list of classes to automatically include. > > for example, this: > > #+begin_src java :results value > import java.util.*; > return "test"; > #+end_src > > will end up pulling in > > import java.util.List; > import java.util.*; > > It wouldn't hurt anything, but could probably be prevented by changing > the regexp in =org-babel-java--import-maybe= to look for asterisk as > well as =class=. Do you feel like updating the patch? > > [1] https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-java.el#L314 Here is an updated patch. It seems to work on my cases. Of topic, I am very happy with the latest updates on ob-java and I think it works really good! Thanks for the awesome work Ian! Stay safe! [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ob-java-Allow-import-to-end-with-asterisk.patch --] [-- Type: text/x-patch, Size: 1691 bytes --] From 92c72792fb18a73572ee35d34a5e1d5ce56d8b6a Mon Sep 17 00:00:00 2001 From: John Herrlin <jherrlin@gmail.com> Date: Tue, 26 Jan 2021 08:19:19 +0100 Subject: [PATCH] ob-java: Allow import to end with asterisk * lisp/ob-java.el (org-babel-java--imports-re, org-babel-java--import-maybe): Allow import to end with asterisk. TINYCHANGE --- lisp/ob-java.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/ob-java.el b/lisp/ob-java.el index 07ff8e9ab..1f2b980f6 100644 --- a/lisp/ob-java.el +++ b/lisp/ob-java.el @@ -88,7 +88,7 @@ like javac -verbose." "Regexp for the package statement.") (defconst org-babel-java--imports-re (rx line-start (0+ space) "import" (opt (1+ space) "static") - (1+ space) (group (1+ (in alnum ?_ ?.))) ; capture the fully qualified class name + (1+ space) (group (1+ (in alnum ?_ ?. ?*))) ; capture the fully qualified class name (0+ space) ?\; line-end) "Regexp for import statements.") (defconst org-babel-java--class-re (rx line-start (0+ space) (opt (seq "public" (1+ space))) @@ -311,7 +311,8 @@ RESULT-FILE is the temp file to write the result." (goto-char (point-min)) (setq class-found (re-search-forward class nil t)) (goto-char (point-min)) - (setq import-found (re-search-forward (concat "^import .*" package ".*" class ";") nil t)) + (setq import-found + (re-search-forward (concat "^import .*" package ".*\\(?:\\*\\|" class "\\);") nil t)) (when (and class-found (not import-found)) (org-babel-java--move-past org-babel-java--package-re) (insert (concat "import " package "." class ";\n"))))) -- 2.30.0
Thanks. And thanks for taking the time to fix issues that you find. It
continues to improve because of your contributions.
The patch looks good. Applied.
On Thu, Jan 28, 2021 at 3:04 PM John Herrlin <jherrlin@gmail.com> wrote:
>
>
> ian martins <ianxm@jhu.edu> writes:
>
> >> I found this case:
> >> And it seems to me that the import regex dont see the asterisk.
> >>
> >> I attached a possible patch.
> >
> > Thanks again, John. You're right the regex is missing the asterisk
> > include. Thanks for the patch fixing. This works but it will add
> > redundant includes if the source block includes something that is also
> > in the list of classes to automatically include.
> >
> > for example, this:
> >
> > #+begin_src java :results value
> > import java.util.*;
> > return "test";
> > #+end_src
> >
> > will end up pulling in
> >
> > import java.util.List;
> > import java.util.*;
> >
> > It wouldn't hurt anything, but could probably be prevented by changing
> > the regexp in =org-babel-java--import-maybe= to look for asterisk as
> > well as =class=. Do you feel like updating the patch?
> >
> > [1] https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-java.el#L314
>
> Here is an updated patch. It seems to work on my cases.
>
> Of topic, I am very happy with the latest updates on ob-java and I think
> it works really good! Thanks for the awesome work Ian!
>
> Stay safe!
>
This was not marked as applied on updates.orgmode.org.
Doing so with the X-Woof-Patch header.
ian martins <ianxm@jhu.edu> writes:
> Thanks. And thanks for taking the time to fix issues that you find. It
> continues to improve because of your contributions.
> The patch looks good. Applied.
[-- Attachment #1: Type: text/plain, Size: 609 bytes --] On Sat, Apr 24, 2021 at 11:44 PM Timothy <tecosaur@gmail.com> wrote: > > This was not marked as applied on updates.orgmode.org. > Doing so with the X-Woof-Patch header. > > ian martins <ianxm@jhu.edu> writes: > > > Thanks. And thanks for taking the time to fix issues that you find. It > > continues to improve because of your contributions. > > The patch looks good. Applied. > Thanks for fixing this. I re-read the woof documentation and realized I needed to put "Applied" at the beginning of the line. if anyone is curious, to save you a search, the doc is here: https://github.com/bzg/woof#basic-usage [-- Attachment #2: Type: text/html, Size: 1199 bytes --]
Hi Ian,
ian martins <ianxm@jhu.edu> writes:
> Thanks for fixing this. I re-read the woof documentation and realized
> I needed to put "Applied" at the beginning of the line.
Yes - and also add a "X-Woof-Patch: applied" header in your reply.