Skip to content
Closed
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve

- We added confirmation dialog when user wants to close a library where any empty entires are detected. [#8096](https://github.com/JabRef/jabref/issues/8096)
- We added import support for CFF files. [#7945](https://github.com/JabRef/jabref/issues/7945)
- We added support to use [Apache Lucence search syntax](https://lucene.apache.org/core/8_10_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package.description) also for the search in the library or in dynamic groups. For end users, there should be no significant difference.
- We added the option to copy the DOI of an entry directly from the context menu copy submenu. [#7826](https://github.com/JabRef/jabref/issues/7826)
- We added a fulltext search feature. [#2838](https://github.com/JabRef/jabref/pull/2838)
- We improved the deduction of bib-entries from imported fulltext pdfs. [#7947](https://github.com/JabRef/jabref/pull/7947)
Expand Down
2 changes: 1 addition & 1 deletion src/jmh/java/org/jabref/benchmarks/Benchmarks.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.jabref.logic.layout.format.HTMLChars;
import org.jabref.logic.layout.format.LatexToUnicodeFormatter;
import org.jabref.logic.search.SearchQuery;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.logic.util.OS;
import org.jabref.model.database.BibDatabase;
import org.jabref.model.database.BibDatabaseContext;
Expand All @@ -31,7 +32,6 @@
import org.jabref.model.groups.KeywordGroup;
import org.jabref.model.groups.WordKeywordGroup;
import org.jabref.model.metadata.MetaData;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.model.util.DummyFileUpdateMonitor;
import org.jabref.preferences.GeneralPreferences;
import org.jabref.preferences.JabRefPreferences;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@
import org.jabref.gui.maintable.OpenFolderAction;
import org.jabref.gui.util.TooltipTextUtil;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.entry.LinkedFile;
import org.jabref.model.pdf.search.PdfSearchResults;
import org.jabref.model.pdf.search.SearchResult;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.preferences.PreferencesService;

import org.slf4j.Logger;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jabref/gui/groups/GroupDialogView.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@
import org.jabref.gui.util.IconValidationDecorator;
import org.jabref.gui.util.ViewModelListCellFactory;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.model.database.BibDatabaseContext;
import org.jabref.model.groups.AbstractGroup;
import org.jabref.model.groups.GroupHierarchyType;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.preferences.PreferencesService;

import com.airhacks.afterburner.views.ViewLoader;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jabref/gui/groups/GroupDialogViewModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
import org.jabref.logic.auxparser.DefaultAuxParser;
import org.jabref.logic.help.HelpFile;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.logic.util.StandardFileType;
import org.jabref.logic.util.io.FileUtil;
import org.jabref.model.database.BibDatabase;
Expand All @@ -49,8 +51,6 @@
import org.jabref.model.groups.TexGroup;
import org.jabref.model.groups.WordKeywordGroup;
import org.jabref.model.metadata.MetaData;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.model.strings.StringUtil;
import org.jabref.preferences.PreferencesService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import org.jabref.gui.groups.GroupsPreferences;
import org.jabref.gui.util.BindingsHelper;
import org.jabref.logic.search.SearchQuery;
import org.jabref.logic.search.matchers.MatcherSet;
import org.jabref.logic.search.matchers.MatcherSets;
import org.jabref.model.database.BibDatabaseContext;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.groups.GroupTreeNode;
import org.jabref.model.search.matchers.MatcherSet;
import org.jabref.model.search.matchers.MatcherSets;
import org.jabref.preferences.PreferencesService;

import com.tobiasdiez.easybind.EasyBind;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/jabref/gui/search/GlobalSearchBar.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@
import org.jabref.gui.util.TooltipTextUtil;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.SearchQuery;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.model.entry.Author;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.preferences.PreferencesService;
import org.jabref.preferences.SearchPreferences;

Expand Down Expand Up @@ -360,7 +360,7 @@ private void updateResults(int matched, TextFlow description, boolean grammarBas

private void setSearchFieldHintTooltip(TextFlow description) {
if (preferencesService.getGeneralPreferences().shouldShowAdvancedHints()) {
String genericDescription = Localization.lang("Hint:\n\nTo search all fields for <b>Smith</b>, enter:\n<tt>smith</tt>\n\nTo search the field <b>author</b> for <b>Smith</b> and the field <b>title</b> for <b>electrical</b>, enter:\n<tt>author=Smith and title=electrical</tt>");
String genericDescription = Localization.lang("Hint:\n\nTo search all fields for <b>Smith</b>, enter:\n<tt>smith</tt>\n\nTo search the field <b>author</b> for <b>Smith</b> and the field <b>title</b> for <b>electrical</b>, enter:\n<tt>author:Smith and title:electrical</tt>");
List<Text> genericDescriptionTexts = TooltipTextUtil.createTextsFromHtml(genericDescription);

if (description == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@

import org.jabref.gui.util.TooltipTextUtil;
import org.jabref.logic.l10n.Localization;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.model.search.rules.SentenceAnalyzer;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.logic.search.rules.SentenceAnalyzer;

public class ContainsAndRegexBasedSearchRuleDescriber implements SearchDescriber {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@

import org.jabref.gui.util.TooltipTextUtil;
import org.jabref.logic.l10n.Localization;
import org.jabref.model.search.rules.GrammarBasedSearchRule;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.logic.search.rules.GrammarBasedSearchRule;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.model.strings.StringUtil;
import org.jabref.search.SearchBaseVisitor;
import org.jabref.search.SearchParser;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.jabref.gui.search.rules.describer;

import java.util.EnumSet;

import javafx.scene.text.TextFlow;

import org.jabref.logic.search.rules.SearchRules.SearchFlags;

public class LuceneBasedSearchRuleDescriber implements SearchDescriber {

private final EnumSet<SearchFlags> searchFlags;
private final String query;

public LuceneBasedSearchRuleDescriber(EnumSet<SearchFlags> searchFlags, String query) {
this.searchFlags = searchFlags;
this.query = query;
}

@Override
public TextFlow getDescription() {
TextFlow searchDescription = new TextFlow();
return searchDescription;
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package org.jabref.gui.search.rules.describer;

import org.jabref.logic.search.SearchQuery;
import org.jabref.model.search.rules.ContainsBasedSearchRule;
import org.jabref.model.search.rules.GrammarBasedSearchRule;
import org.jabref.model.search.rules.RegexBasedSearchRule;
import org.jabref.logic.search.rules.ContainsBasedSearchRule;
import org.jabref.logic.search.rules.GrammarBasedSearchRule;
import org.jabref.logic.search.rules.LuceneBasedSearchRule;
import org.jabref.logic.search.rules.RegexBasedSearchRule;

public class SearchDescribers {

Expand All @@ -17,12 +18,14 @@ private SearchDescribers() {
* @return the search describer to turn the search into something human understandable
*/
public static SearchDescriber getSearchDescriberFor(SearchQuery searchQuery) {
if (searchQuery.getRule() instanceof GrammarBasedSearchRule grammarBasedSearchRule) {
return new GrammarBasedSearchRuleDescriber(grammarBasedSearchRule.getSearchFlags(), grammarBasedSearchRule.getTree());
if (searchQuery.getRule() instanceof LuceneBasedSearchRule lucenceBasedSearchRule) {
return new LuceneBasedSearchRuleDescriber(lucenceBasedSearchRule.getSearchFlags(), searchQuery.getQuery());
} else if (searchQuery.getRule() instanceof ContainsBasedSearchRule containBasedSearchRule) {
return new ContainsAndRegexBasedSearchRuleDescriber(containBasedSearchRule.getSearchFlags(), searchQuery.getQuery());
} else if (searchQuery.getRule() instanceof RegexBasedSearchRule regexBasedSearchRule) {
return new ContainsAndRegexBasedSearchRuleDescriber(regexBasedSearchRule.getSearchFlags(), searchQuery.getQuery());
} else if (searchQuery.getRule() instanceof GrammarBasedSearchRule grammarBasedSearchRule) {
return new GrammarBasedSearchRuleDescriber(grammarBasedSearchRule.getSearchFlags(), grammarBasedSearchRule.getTree());
} else {
throw new IllegalStateException("Cannot find a describer for searchRule " + searchQuery.getRule() + " and query " + searchQuery.getQuery());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

import javafx.scene.paint.Color;

import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.util.MetadataSerializationConfiguration;
import org.jabref.logic.util.io.FileUtil;
import org.jabref.model.groups.AbstractGroup;
Expand All @@ -18,7 +19,6 @@
import org.jabref.model.groups.RegexKeywordGroup;
import org.jabref.model.groups.SearchGroup;
import org.jabref.model.groups.TexGroup;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.strings.StringUtil;

public class GroupSerializer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public abstract class AbstractQueryTransformer {
public static final String NO_EXPLICIT_FIELD = "default";
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractQueryTransformer.class);

// These can be used for filtering in post processing
// These can be used for filtering in post-processing
protected int startYear = Integer.MAX_VALUE;
protected int endYear = Integer.MIN_VALUE;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import org.jabref.logic.groups.DefaultGroupsFactory;
import org.jabref.logic.importer.ParseException;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.logic.util.MetadataSerializationConfiguration;
import org.jabref.logic.util.strings.QuotedStringTokenizer;
import org.jabref.model.database.BibDatabase;
Expand All @@ -27,8 +29,6 @@
import org.jabref.model.groups.TexGroup;
import org.jabref.model.groups.WordKeywordGroup;
import org.jabref.model.metadata.MetaData;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;
import org.jabref.model.strings.StringUtil;
import org.jabref.model.util.FileUpdateMonitor;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.jabref.model.search;
package org.jabref.logic.search;

import java.util.EnumSet;
import java.util.Objects;

import org.jabref.logic.search.rules.SearchRule;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SearchRules.SearchFlags;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.search.rules.SearchRule;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SearchRules.SearchFlags;

public class GroupSearchQuery implements SearchMatcher {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.jabref.model.search;
package org.jabref.logic.search;

import org.jabref.model.entry.BibEntry;

Expand Down
11 changes: 5 additions & 6 deletions src/main/java/org/jabref/logic/search/SearchQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@
import java.util.stream.Stream;

import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.rules.ContainsBasedSearchRule;
import org.jabref.logic.search.rules.GrammarBasedSearchRule;
import org.jabref.logic.search.rules.SearchRule;
import org.jabref.logic.search.rules.SearchRules;
import org.jabref.logic.search.rules.SentenceAnalyzer;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.search.SearchMatcher;
import org.jabref.model.search.rules.ContainsBasedSearchRule;
import org.jabref.model.search.rules.GrammarBasedSearchRule;
import org.jabref.model.search.rules.SearchRule;
import org.jabref.model.search.rules.SearchRules;
import org.jabref.model.search.rules.SentenceAnalyzer;

public class SearchQuery implements SearchMatcher {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.jabref.model.search.matchers;
package org.jabref.logic.search.matchers;

import org.jabref.model.entry.BibEntry;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package org.jabref.model.search.matchers;
package org.jabref.logic.search.matchers;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import org.jabref.model.search.SearchMatcher;
import org.jabref.logic.search.SearchMatcher;

public abstract class MatcherSet implements SearchMatcher {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.jabref.model.search.matchers;
package org.jabref.logic.search.matchers;

public class MatcherSets {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.jabref.model.search.matchers;
package org.jabref.logic.search.matchers;

import java.util.Objects;

import org.jabref.logic.search.SearchMatcher;
import org.jabref.model.entry.BibEntry;
import org.jabref.model.search.SearchMatcher;

/**
* Inverts the search result.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.jabref.model.search.matchers;
package org.jabref.logic.search.matchers;

import org.jabref.model.entry.BibEntry;
import org.jabref.model.util.ListUtil;
Expand Down
Loading