-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes bugs in the regex
cite key pattern modifier
#6893
Fixes bugs in the regex
cite key pattern modifier
#6893
Conversation
src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java
Outdated
Show resolved
Hide resolved
regex
cite key pattern modifierregex
cite key pattern modifier
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general LGTM - just some nitpicks.
src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java
Outdated
Show resolved
Hide resolved
src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java
Outdated
Show resolved
Hide resolved
@@ -71,7 +92,7 @@ private String replaceHonoringProtectedGroups(final String input) { | |||
@Override | |||
public String format(final String input) { | |||
Objects.requireNonNull(input); | |||
if (regex == null) { | |||
if (regex == null || replacement == null) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you switch to Optional<String>
as datatype for regex
and replacement
? JabRef wants to get rid off null
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not easily without code-style complaints. regex
and replacement
are instance fields (private final String
).
I believe the choice of using instance fields is to inherit the method logic.cleanup.Formatter#format(String value)
, which most modifiers do, while still allowing arguments.
The behavior of most code in the citation key patterns is to either return an empty string or an unmodified string on invalid usage. Hence throwing an exception during construction would require code outside of RegexFormatter
to deal with that circumstance, which I'd like to avoid due to separation of concerns.
I'd guess the alternative is to create an interface extending logic.cleanup.Formatter
with format(String value, String ... args)
.
I have avoided taking these types of decisions as I am fairly new to Java and JabRef, but I can look into other alternatives.
src/main/java/org/jabref/logic/formatter/bibtexfields/RegexFormatter.java
Outdated
Show resolved
Hide resolved
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
…-issue-6707 * upstream/master: (35 commits) Fix a fetcher test for the ShortDOIService (#6945) Fixes Shared Database: Changes filtering in CoarseChangeFilter to attribute property (#6868) Changed default value of "search and store files relative to bibtex file" to true (#6928) Replace comment by just a failure (#6943) Fix: in entry types editor selected field is not removed after first click (#6941) Fix remove actions for entry types in the editor (#6933) Always use Java 15 (#6929) Update DevDocs: workaround for issues with local openjfx maven libraries (#6931) Fixes bugs in the `regex` cite key pattern modifier (#6893) Add missing author Readability for citation key patterns (#6706) Add new author Reset to master and add default case to switch (#6847) Bump mockito-core from 3.5.10 to 3.5.11 (#6924) Bump byte-buddy-parent from 1.10.14 to 1.10.15 (#6923) Bump org.beryx.jlink from 2.21.4 to 2.22.0 (#6925) Bump xmpbox from 2.0.20 to 2.0.21 (#6926) Bump pascalgn/automerge-action from v0.9.0 to v0.10.0 (#6927) Improve parsing of short DOIs (#6920) Bump junit-vintage-engine from 5.6.2 to 5.7.0 (#6910) ...
* upstream/master: (55 commits) Rename menus citation style in preview style (#6899) Fix for some Unicode characters in citation keys (#6938) Add missing authors Fix a fetcher test for the ShortDOIService (#6945) Fixes Shared Database: Changes filtering in CoarseChangeFilter to attribute property (#6868) Changed default value of "search and store files relative to bibtex file" to true (#6928) Replace comment by just a failure (#6943) Fix: in entry types editor selected field is not removed after first click (#6941) Fix remove actions for entry types in the editor (#6933) Always use Java 15 (#6929) Update DevDocs: workaround for issues with local openjfx maven libraries (#6931) Fixes bugs in the `regex` cite key pattern modifier (#6893) Add missing author Readability for citation key patterns (#6706) Add new author Reset to master and add default case to switch (#6847) Bump mockito-core from 3.5.10 to 3.5.11 (#6924) Bump byte-buddy-parent from 1.10.14 to 1.10.15 (#6923) Bump org.beryx.jlink from 2.21.4 to 2.22.0 (#6925) Bump xmpbox from 2.0.20 to 2.0.21 (#6926) ... # Conflicts: # src/main/java/org/jabref/logic/util/DelayTaskThrottler.java
There are some bugs in the
regex
modifier. The following change-list is preliminary,String
(".", "")
and(".","")
will be considered valid)Change in CHANGELOG.md described (if applicable)Screenshots added in PR description (for UI changes)