Skip to content
Closed
Show file tree
Hide file tree
Changes from all 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 @@ -73,4 +73,3 @@ public SearchResultsTable(SearchResultsTableDataModel model,
database.getDatabase().registerListener(this);
}
}

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