summaryrefslogtreecommitdiffstats
path: root/sd-plugin
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-11-04 11:00:05 +0000
committerArne H Juul <arnej@yahooinc.com>2021-11-04 13:11:14 +0000
commite9bf7a444158624c88448459a407b4e1e4beb97e (patch)
tree6c029a99b204d2b13da6c66650db14891ccebf14 /sd-plugin
parent8e165140c2726e4434e56a032aeadd012943dca6 (diff)
add "match-features" syntax
* based on the way "summary-features" is handled * also add "rank-features" some places where it seems to be missing
Diffstat (limited to 'sd-plugin')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java1
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex2
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf6
3 files changed, 8 insertions, 1 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java
index 7ff108fc8f6..46cbffe0aa8 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java
@@ -112,6 +112,7 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
keyWords.add(SdTypes.FUNCTION);
keyWords.add(SdTypes.INLINE);
keyWords.add(SdTypes.SUMMARY_FEATURES);
+ keyWords.add(SdTypes.MATCH_FEATURES);
keyWords.add(SdTypes.RANK_FEATURES);
keyWords.add(SdTypes.CONSTANTS);
keyWords.add(SdTypes.DOCUMENT);
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex b/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex
index 235b494cb0e..5368551b81b 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/lexer/sd.flex
@@ -198,6 +198,8 @@ WORD = \w+
"inline" { return INLINE; }
"summary-features" { return SUMMARY_FEATURES; }
+ "match-features" { return MATCH_FEATURES; }
+ "rank-features" { return RANK_FEATURES; }
"body" { return BODY; }
"header" { return HEADER; }
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf
index c8c7af8ade8..243e177dbdd 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf
@@ -137,7 +137,8 @@ RankProfileDefinition ::= rank-profile IdentifierWithDashVal (inherits Identifie
private RankProfileBody ::= RankProfileBodyOptions* // Does not support zero-or-one occurrences
private RankProfileBodyOptions ::= MatchPhaseDefinition | NumThreadsDefinition | FunctionDefinition | TermwiseLimitDefinition |
ignore-default-rank-features | RankPropertiesDefinition | FirstPhaseDefinition |
- SummaryFeaturesDefinition | RankFeaturesDefinition | SecondPhaseDefinition | ConstantsDefinition |
+ SummaryFeaturesDefinition | MatchFeaturesDefinition | RankFeaturesDefinition |
+ SecondPhaseDefinition | ConstantsDefinition |
RankDefinition | RankTypeDefinition | MinHitsDefinition | NumSearchPartitionDefinition
MatchPhaseDefinition ::= match-phase '{' MatchPhaseBody '}'
@@ -181,6 +182,8 @@ ArgumentDefinition ::= IdentifierVal
SummaryFeaturesDefinition ::= summary-features ((':' RankFeature+) | ((inherits IdentifierVal)? '{' RankFeature* '}'))
+MatchFeaturesDefinition ::= match-features (':' RankFeature+) | ('{' RankFeature* '}')
+
RankFeaturesDefinition ::= rank-features (':' RankFeature+) | ('{' RankFeature* '}')
ConstantsDefinition ::= constants '{' (IdentifierVal ':' RankPropertiesValue)* '}'
@@ -337,6 +340,7 @@ KeywordNotIdentifier ::= struct-field | document-summary | omit-summary-features
num-threads-per-search | termwise-limit | ignore-default-rank-features | min-hits-per-thread |
num-search-partition | match-phase | max-hits | second-phase | rerank-count | min-groups |
first-phase | keep-rank-count | rank-score-drop-limit | rank-properties | summary-features |
+ match-features | rank-features |
exact-terminator | max-length | gram-size | fast-search | fast-access | distance-metric |
indexing-rewrite | query-command | matched-elements-only | lower-bound | upper-bound |
dense-posting-list-threshold | enable-bm25 | max-links-per-node | neighbors-to-explore-at-insert |