summaryrefslogtreecommitdiffstats
path: root/sd-plugin/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'sd-plugin/src/main')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/SdSyntaxHighlighter.java115
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java2
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java2
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/parser/sd.bnf16
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/sd.flex3
-rw-r--r--sd-plugin/src/main/resources/META-INF/plugin.xml26
-rw-r--r--sd-plugin/src/main/resources/META-INF/pluginIcon.svg17
-rw-r--r--sd-plugin/src/main/resources/META-INF/pluginIcon_dark.svg17
8 files changed, 129 insertions, 69 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 ae99b58f11f..31acd5ff730 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
@@ -23,11 +23,9 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
private static final HashSet<IElementType> keyWordsSet = initKeyWordsSet();
private static final HashSet<IElementType> constantsSet = initConstantsSet();
-// private static final HashSet<IElementType> symbols = initSymbolsSet();
-
public static final TextAttributesKey IDENTIFIER =
- createTextAttributesKey("SD_IDENTIFIER", DefaultLanguageHighlighterColors.INSTANCE_FIELD);
+ createTextAttributesKey("SD_IDENTIFIER", DefaultLanguageHighlighterColors.IDENTIFIER);
public static final TextAttributesKey CONSTANT =
createTextAttributesKey("SD_CONSTANT", DefaultLanguageHighlighterColors.CONSTANT);
public static final TextAttributesKey KEY =
@@ -36,6 +34,8 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
createTextAttributesKey("SD_SYMBOL", DefaultLanguageHighlighterColors.BRACKETS);
public static final TextAttributesKey STRING =
createTextAttributesKey("SD_STRING", DefaultLanguageHighlighterColors.STRING);
+ public static final TextAttributesKey NUMBER =
+ createTextAttributesKey("SD_NUMBER", DefaultLanguageHighlighterColors.NUMBER);
public static final TextAttributesKey COMMENT =
createTextAttributesKey("SD_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT);
public static final TextAttributesKey BAD_CHARACTER =
@@ -48,6 +48,7 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
private static final TextAttributesKey[] KEY_KEYS = new TextAttributesKey[]{KEY};
private static final TextAttributesKey[] SYMBOL_KEYS = new TextAttributesKey[]{SYMBOL};
private static final TextAttributesKey[] STRING_KEYS = new TextAttributesKey[]{STRING};
+ private static final TextAttributesKey[] NUMBER_KEYS = new TextAttributesKey[]{NUMBER};
private static final TextAttributesKey[] COMMENT_KEYS = new TextAttributesKey[]{COMMENT};
private static final TextAttributesKey[] EMPTY_KEYS = new TextAttributesKey[0];
@@ -59,18 +60,16 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
@Override
public TextAttributesKey @NotNull [] getTokenHighlights(IElementType tokenType) {
- if (tokenType.equals(SdTypes.IDENTIFIER_VAL)) {
+ if (tokenType.equals(SdTypes.IDENTIFIER_VAL) || tokenType.equals(SdTypes.IDENTIFIER_WITH_DASH_VAL)) {
return IDENTIFIER_KEYS;
-// } else if (tokenType.equals(SdTypes.KEY)) {
-// return KEY_KEYS;
-// } else if (tokenType.equals(SdTypes.VALUE)) {
-// return VALUE_KEYS;
} else if (keyWordsSet.contains(tokenType)) {
return KEY_KEYS;
} else if (tokenType.equals(SdTypes.SYMBOL)) {
return SYMBOL_KEYS;
- } else if (tokenType.equals(SdTypes.STRING)) {
+ } else if (tokenType.equals(SdTypes.STRING_REG)) {
return STRING_KEYS;
+ } else if (tokenType.equals(SdTypes.INTEGER_REG) || tokenType.equals(SdTypes.FLOAT_REG)) {
+ return NUMBER_KEYS;
} else if (tokenType.equals(SdTypes.COMMENT)) {
return COMMENT_KEYS;
} else if (constantsSet.contains(tokenType)) {
@@ -82,34 +81,81 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
}
}
-// private static HashSet<IElementType> initSymbolsSet() {
-// HashSet<IElementType> symbols = new HashSet<>();
-// symbols.add('{');
-// return symbols;
-// }
-
private static HashSet<IElementType> initKeyWordsSet() {
HashSet<IElementType> keyWords = new HashSet<>();
- keyWords.add(SdTypes.MACRO);
+ keyWords.add(SdTypes.SEARCH);
+ keyWords.add(SdTypes.SCHEMA);
keyWords.add(SdTypes.FIELD);
keyWords.add(SdTypes.TYPE);
- keyWords.add(SdTypes.SEARCH);
- keyWords.add(SdTypes.DOCUMENT);
+ keyWords.add(SdTypes.INDEXING);
+ keyWords.add(SdTypes.INPUT);
+ keyWords.add(SdTypes.DOCUMENT_SUMMARY);
keyWords.add(SdTypes.INHERITS);
+ keyWords.add(SdTypes.IMPORT);
+ keyWords.add(SdTypes.AS);
+ keyWords.add(SdTypes.FIELDSET);
+ keyWords.add(SdTypes.FIELDS);
+ keyWords.add(SdTypes.CONSTANT);
+ keyWords.add(SdTypes.FILE);
+ keyWords.add(SdTypes.URI);
+ keyWords.add(SdTypes.OUTPUT);
+ keyWords.add(SdTypes.ONNX_MODEL);
+ keyWords.add(SdTypes.ANNOTATION);
+ keyWords.add(SdTypes.RANK_PROFILE);
+ keyWords.add(SdTypes.MATCH_PHASE);
+ keyWords.add(SdTypes.FIRST_PHASE);
+ keyWords.add(SdTypes.EXPRESSION);
+ keyWords.add(SdTypes.SECOND_PHASE);
+ keyWords.add(SdTypes.RANK_PROPERTIES);
+ keyWords.add(SdTypes.MACRO);
+ keyWords.add(SdTypes.FUNCTION);
+ keyWords.add(SdTypes.INLINE);
+ keyWords.add(SdTypes.SUMMARY_FEATURES);
+ keyWords.add(SdTypes.RANK_FEATURES);
+ keyWords.add(SdTypes.CONSTANTS);
+ keyWords.add(SdTypes.DOCUMENT);
keyWords.add(SdTypes.STRUCT);
keyWords.add(SdTypes.STRUCT_FIELD);
keyWords.add(SdTypes.MATCH);
- keyWords.add(SdTypes.INDEXING);
+ keyWords.add(SdTypes.DISTANCE_METRIC);
+ keyWords.add(SdTypes.ALIAS);
+ keyWords.add(SdTypes.STEMMING);
keyWords.add(SdTypes.RANK);
keyWords.add(SdTypes.INDEXING_REWRITE);
keyWords.add(SdTypes.QUERY_COMMAND);
+ keyWords.add(SdTypes.BOLDING);
+ keyWords.add(SdTypes.HNSW);
+ keyWords.add(SdTypes.SORTING);
+ keyWords.add(SdTypes.RANK_TYPE);
+ keyWords.add(SdTypes.WEIGHTEDSET);
+ keyWords.add(SdTypes.DICTIONARY);
+ keyWords.add(SdTypes.ID);
+ keyWords.add(SdTypes.NORMALIZING);
+ keyWords.add(SdTypes.WEIGHT);
+
return keyWords;
}
private static HashSet<IElementType> initConstantsSet() {
HashSet<IElementType> constants = new HashSet<>();
- constants.add(SdTypes.SUMMARY);
+ constants.add(SdTypes.RAW_AS_BASE64_IN_SUMMARY);
+ constants.add(SdTypes.OMIT_SUMMARY_FEATURES);
+ constants.add(SdTypes.FROM_DISK);
+ constants.add(SdTypes.IGNORE_DEFAULT_RANK_FEATURES);
constants.add(SdTypes.ATTRIBUTE);
+ constants.add(SdTypes.ORDER);
+ constants.add(SdTypes.MAX_HITS);
+ constants.add(SdTypes.DIVERSITY);
+ constants.add(SdTypes.MIN_GROUPS);
+ constants.add(SdTypes.CUTOFF_FACTOR);
+ constants.add(SdTypes.CUTOFF_STRATEGY);
+ constants.add(SdTypes.NUM_THREADS_PER_SEARCH);
+ constants.add(SdTypes.TERMWISE_LIMIT);
+ constants.add(SdTypes.MIN_HITS_PER_THREAD);
+ constants.add(SdTypes.NUM_SEARCH_PARTITION);
+ constants.add(SdTypes.KEEP_RANK_COUNT);
+ constants.add(SdTypes.RANK_SCORE_DROP_LIMIT);
+ constants.add(SdTypes.RERANK_COUNT);
constants.add(SdTypes.TEXT);
constants.add(SdTypes.EXACT);
constants.add(SdTypes.EXACT_TERMINATOR);
@@ -122,19 +168,40 @@ public class SdSyntaxHighlighter extends SyntaxHighlighterBase {
constants.add(SdTypes.MAX_LENGTH);
constants.add(SdTypes.GRAM);
constants.add(SdTypes.GRAM_SIZE);
+ constants.add(SdTypes.SUMMARY);
constants.add(SdTypes.INDEX);
+ constants.add(SdTypes.SET_LANGUAGE);
constants.add(SdTypes.FAST_SEARCH);
constants.add(SdTypes.FAST_ACCESS);
- constants.add(SdTypes.ALIAS);
- constants.add(SdTypes.SORTING);
- constants.add(SdTypes.DISTANCE_METRIC);
+ constants.add(SdTypes.PAGED);
+ constants.add(SdTypes.MUTABLE);
constants.add(SdTypes.FILTER);
constants.add(SdTypes.NORMAL);
constants.add(SdTypes.NONE);
constants.add(SdTypes.FULL);
constants.add(SdTypes.DYNAMIC);
+ constants.add(SdTypes.SOURCE);
+ constants.add(SdTypes.TO);
constants.add(SdTypes.MATCHED_ELEMENTS_ONLY);
-
+ constants.add(SdTypes.ON);
+ constants.add(SdTypes.OFF);
+ constants.add(SdTypes.TRUE);
+ constants.add(SdTypes.FALSE);
+ constants.add(SdTypes.ARITY);
+ constants.add(SdTypes.LOWER_BOUND);
+ constants.add(SdTypes.UPPER_BOUND);
+ constants.add(SdTypes.DENSE_POSTING_LIST_THRESHOLD);
+ constants.add(SdTypes.ENABLE_BM25);
+ constants.add(SdTypes.MAX_LINKS_PER_NODE);
+ constants.add(SdTypes.NEIGHBORS_TO_EXPLORE_AT_INSERT);
+ constants.add(SdTypes.MULTI_THREADED_INDEXING);
+ constants.add(SdTypes.ASCENDING);
+ constants.add(SdTypes.DESCENDING);
+ constants.add(SdTypes.STRENGTH);
+ constants.add(SdTypes.LOCALE);
+ constants.add(SdTypes.CREATE_IF_NONEXISTENT);
+ constants.add(SdTypes.REMOVE_IF_ZERO);
+
return constants;
}
}
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java
index 4ec407e580d..d011d34227f 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/findUsages/SdFindUsagesProvider.java
@@ -28,7 +28,7 @@ public class SdFindUsagesProvider implements FindUsagesProvider {
TokenSet.create(SdTypes.ID_REG, SdTypes.ID_WITH_DASH_REG, SdTypes.IDENTIFIER_VAL,
SdTypes.IDENTIFIER_WITH_DASH_VAL),
TokenSet.create(SdTypes.COMMENT),
- TokenSet.create(SdTypes.STRING, SdTypes.INTEGER_REG, SdTypes.FLOAT_REG));
+ TokenSet.create(SdTypes.STRING_REG, SdTypes.INTEGER_REG, SdTypes.FLOAT_REG));
}
@Override
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java
index 2a169707a79..baf31cde898 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/parser/SdParserDefinition.java
@@ -26,7 +26,7 @@ import org.jetbrains.annotations.NotNull;
public class SdParserDefinition implements ParserDefinition {
public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE);
public static final TokenSet COMMENTS = TokenSet.create(SdTypes.COMMENT);
- public static final TokenSet STRINGS = TokenSet.create(SdTypes.STRING);
+ public static final TokenSet STRINGS = TokenSet.create(SdTypes.STRING_REG);
public static final IFileElementType FILE = new IFileElementType(SdLanguage.INSTANCE);
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 245975f301c..073673ee30c 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
@@ -35,7 +35,7 @@ NOTE: This grammar does not enforce zero-or-one occurrences of elements (treats
ARITHMETIC_OPERATOR = 'regexp:[\-+*/]'
INTEGER_REG = 'regexp:[0-9]+'
FLOAT_REG = 'regexp:[0-9]+[.][0-9]+[e]?'
- STRING = 'regexp:[\"][^\"]*[\"]'
+ STRING_REG = 'regexp:[\"][^\"]*[\"]'
WORD_REG = 'regexp:\w+'
]
}
@@ -95,7 +95,7 @@ private UriPath ::= ('H'|'h') ('T'|'t') ('T'|'t') ('P'|'p') ('S'|'s')? ':' ('//'
OnnxModelDefinition ::= onnx-model IdentifierVal '{' OnnxModelBody '}'
OnnxModelBody ::= OnnxModelBodyOptions*
private OnnxModelBodyOptions ::= (file ':' FilePath) | (uri ':' UriPath) |
- ((input | output) (IdentifierVal | STRING) ':' ('.' | '/' | '(' | ')' | IdentifierWithDashVal | WORD_REG))
+ ((input | output) (IdentifierVal | STRING_REG) ':' ('.' | '/' | '(' | ')' | IdentifierWithDashVal | WORD_REG))
SchemaAnnotationDefinition ::= AnnotationDefinition
{ mixin="org.intellij.sdk.language.psi.impl.SdNamedElementImpl"
@@ -168,8 +168,8 @@ private SecondPhaseBodyOptions ::= (rerank-count ':' INTEGER_REG) | ExpressionDe
RankPropertiesDefinition ::= rank-properties '{' RankPropertiesBody '}'
RankPropertiesBody ::= (RankPropertiesKey ':' RankPropertiesValue)+
-RankPropertiesKey ::= (IdentifierWithDashVal | STRING | '(' | ')' | '.' | ',')+
-RankPropertiesValue ::= (('-')? INTEGER_REG) | (('-')? FLOAT_REG) | WORD_REG | IdentifierVal | STRING
+RankPropertiesKey ::= (IdentifierWithDashVal | STRING_REG | '(' | ')' | '.' | ',')+
+RankPropertiesValue ::= (('-')? INTEGER_REG) | (('-')? FLOAT_REG) | WORD_REG | IdentifierVal | STRING_REG
FunctionDefinition ::= (function | macro) inline? IdentifierVal '(' (ArgumentDefinition (',' ArgumentDefinition)*)? ')'
'{' ExpressionDefinition '}'
@@ -235,7 +235,7 @@ DocumentFieldBody ::= DocumentFieldBodyOptions* // Does not support zero-or-one
private DocumentFieldBodyOptions ::= StructFieldDefinition | MatchDefinition | IndexingDefinition | AttributeDefinition |
AliasDef | RankDefinition | IndexingRewriteState | QueryCommandDefinition | SummaryDefinition |
BoldingDefinition | (id ':' INTEGER_REG) | IndexDefinition | (normalizing ':' IdentifierWithDashVal) |
- SortingDefinition | StemmingDefinition | (weight ': INTEGER_REG') | WeightedSetDefinition |
+ SortingDefinition | StemmingDefinition | (weight ':' INTEGER_REG) | WeightedSetDefinition |
RankTypeDefinition | DictionaryDefinition
//***** Field's body elements ******//
@@ -256,7 +256,7 @@ MatchProperty ::= text | exact | exact-terminator | word | prefix | cased | unca
IndexingDefinition ::= indexing (':' IndexingStatement) | ('{' IndexingStatement+ '}')
IndexingStatement ::= IndexingStatementOptions (('|' IndexingStatementOptions)*) | ((';' IndexingStatementOptions)*)
// Does not support zero-or-one occurrences
-IndexingStatementOptions ::= summary | attribute | index | "set_language"
+IndexingStatementOptions ::= summary | attribute | index | set_language
// Attribute
AttributeDefinition ::= attribute ((':' SimpleAttributeProperty) | ('{' (SimpleAttributeProperty | ComplexAttributeProperty)+ '}'))
SimpleAttributeProperty ::= fast-search | fast-access | paged | mutable // Does not support zero-or-one occurrences
@@ -272,7 +272,7 @@ RankingSetting ::= filter | normal
// Indexing Rewrite
IndexingRewriteState ::= indexing-rewrite ':' none
// Query Command
-QueryCommandDefinition ::= query-command ':' IdentifierVal | STRING
+QueryCommandDefinition ::= query-command ':' IdentifierVal | STRING_REG
// Summary
SummaryDefinition ::= summary ((':' SummaryBodyOptions) | (IdentifierWithDashVal? (type FieldTypeName)? '{' SummaryBody '}'))
{ methods=[getName getPresentation] }
@@ -330,7 +330,7 @@ KeywordOrIdentifier ::= schema | search | document | struct | field | type | ind
bolding | on | off | true | false | id | normalizing | stemming | arity | hnsw | dictionary | hash | btree |
fieldset | fields | constant | annotation
| attribute | body | header | index |
- reference | summary
+ reference | summary | set_language
// Note- in this form, those keywords can't be use as identifier-with-dash!
KeywordNotIdentifier ::= struct-field | document-summary | omit-summary-features | from-disk | rank-profile | rank-type |
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/sd.flex b/sd-plugin/src/main/java/org/intellij/sdk/language/sd.flex
index 02c14a53358..ce8fbd091cc 100644
--- a/sd-plugin/src/main/java/org/intellij/sdk/language/sd.flex
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/sd.flex
@@ -68,6 +68,7 @@ WORD = \w+
"indexing" { return INDEXING; }
"summary" { return SUMMARY; }
"attribute" { return ATTRIBUTE; }
+ "set_language" { return SET_LANGUAGE; }
"array" { return ARRAY; }
"raw" { return RAW; }
@@ -214,7 +215,7 @@ WORD = \w+
{ARITHMETIC_OPERATOR} { return ARITHMETIC_OPERATOR; }
{COMPARISON_OPERATOR} { return COMPARISON_OPERATOR; }
{WORD} { return WORD_REG; }
- {STRING} { return STRING; }
+ {STRING} { return STRING_REG; }
}
diff --git a/sd-plugin/src/main/resources/META-INF/plugin.xml b/sd-plugin/src/main/resources/META-INF/plugin.xml
index 7e61f0a8b1e..5ca73d416e0 100644
--- a/sd-plugin/src/main/resources/META-INF/plugin.xml
+++ b/sd-plugin/src/main/resources/META-INF/plugin.xml
@@ -2,17 +2,29 @@
<idea-plugin>
<id>org.intellij.sdk.language</id>
<name>SdReader</name>
+ <version>1.0.0</version>
<!-- Text to display as company information on Preferences/Settings | Plugin page -->
- <vendor email="shahar.ariel@yahooinc.com">Yahoo</vendor>
+ <vendor>Vespa</vendor>
<!-- Product and plugin compatibility requirements -->
<depends>com.intellij.java</depends>
<!-- Text to display as description on Preferences/Settings | Plugin page -->
<description><![CDATA[
- A plugin to recognize sd files and work with them through IntelliJ<br>
- <em></em>
+ <p>Support for reading Vespa's SD files.</p>
+ <p>Features:</p>
+ <ul>
+ <li>Structure View</li>
+ <li>Find Usages</li>
+ <li>Call Hierarchy (for functions/macros)</li>
+ <li>Go To Declaration</li>
+ <li>Go to Symbol</li>
+ <li>Refactoring</li>
+ <li>Syntax Highlighting</li>
+ <li>Commenter- enable turning lines into a comment with "Code -> Comment with line comment"</li>
+ </ul>
+ <p>Find more information on Vespa's SD files <a href="https://docs.vespa.ai/en/reference/schema-reference.html">here</a>.</p>
]]></description>
<!-- please see https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html
@@ -20,6 +32,7 @@
<depends>com.intellij.modules.platform</depends>
<depends>com.intellij.java</depends>
+ <!-- Extension points defined by the plugin -->
<extensions defaultExtensionNs="com.intellij">
<fileType name="Sd File" implementationClass="org.intellij.sdk.language.SdFileType" fieldName="INSTANCE"
language="Sd" extensions="sd"/>
@@ -41,8 +54,5 @@
<gotoSymbolContributor implementation="org.intellij.sdk.language.SdChooseByNameContributor"/>
<callHierarchyProvider language="Sd" implementationClass="org.intellij.sdk.language.hierarchy.SdCallHierarchyProvider"/>
</extensions>
-
- <actions>
- <!-- Add your actions here -->
- </actions>
-</idea-plugin>
+
+</idea-plugin> \ No newline at end of file
diff --git a/sd-plugin/src/main/resources/META-INF/pluginIcon.svg b/sd-plugin/src/main/resources/META-INF/pluginIcon.svg
index 9babe4c4ef4..caacd6a053e 100644
--- a/sd-plugin/src/main/resources/META-INF/pluginIcon.svg
+++ b/sd-plugin/src/main/resources/META-INF/pluginIcon.svg
@@ -1,19 +1,10 @@
-<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40">
- <title>pluginIcon</title>
+<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
+ <title>New Project</title>
<defs>
- <image width="40" height="40" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoAQMAAAC2MCouAAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAAAMSURBVHicY2AYWQAAAPAAAQaUif0AAAAASUVORK5CYII="/>
- <image width="36" height="36" id="img2" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkAQMAAADbzgrbAAAAAXNSR0IB2cksfwAAAANQTFRFuubnWfllrQAAAAxJREFUeJxjYBieAAAA2AABOXA/oAAAAABJRU5ErkJggg=="/>
- <image width="34" height="34" id="img3" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiAQMAAAAAiZmBAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAAP5aZJJgdHgAAAAJ0Uk5TAP9bkSK1AAAAWUlEQVR4nI3Ouw2AMAxF0YcoXGYERsloyWiMwhgUiIsTKxESDS5O49+T7JRXpgm7tMAhreANg0tK3Q3uNghhVfno+In/lum4kKfjY3plsJ4qEkZaX6uuefMBOOp0ufGf8MYAAAAASUVORK5CYII="/>
+ <image width="30" height="29" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAdCAMAAACKeiw+AAAAAXNSR0IB2cksfwAAAUpQTFRFAAAAHKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0lOzY/wAAAG50Uk5TAA5Acarj/8dVMgdq1LgjXdzxzbAfO/iV1epHHGO/f9hcFZ3lQiR08oAPeL7CuWkIYKieoI8u9/n69en2/eAX6GY6rljt7MzmWv4ac5jwEO5RM7381k8skCnX3srvyDdB6/N8jNLnBfT7wXqSr7W47lQGAAABpElEQVR4nIVT6z8CQRS9+7qVNk3FKiqUIvJWbSLvjQh5hkgeef//X83s2rb6hfNhZvecmXvP3LkD8AOOF0QJKWyi3cFBO3ocThmbcDl7e1pVzk08Xp+9j333Cy6ieN2t8oA/IA42Iw4FQ+gPW2oIh0fa0o1GomjqnBujYx1mYvFxv9vIP+jFCejEaAi9vfpm0eOkexOTU8npmVmYm19YXEpRA6LCaHAQ4qDTUlrJqFkeJGU5t7KaBwiii/F29LEka+r6xmZ6C7Z3+uJaYZdG3UM7QFEMCCyHpwCQ2s9Tmf6sanQ4QLEIMRtJMTlbCh+yeYfJyhEdjtEWgzJqutUT9fTs3JRz24xCLDdlmCmkoxe/ywCXauQvGVQJDGuWXJGudGvXN9RR1ZAT8i1l7lCqNA+WVmoJtQRwX394fHrmzYM1BKMs2mlpLeMDkF+ymVeS18siNAD4gF5UOMnW3yj7/vGZ/KoBK6rMW1fSCfNKIEi6X6gR9L92AE7u1kwDFiNjZytiqGX1P40MXFAMYPRKoyBVJC2hzAV/PSKGRrFSpogVGxb3De/eO/7N6EMHAAAAAElFTkSuQmCC"/>
</defs>
<style>
tspan { white-space:pre }
- .txt0 { font-size: 20px;fill: #efab00;font-weight: 400;font-family: "DejaVuSans", "DejaVu Sans" }
</style>
- <use id="Background" href="#img1" x="0" y="0" />
- <use id="Layer 1" style="opacity: 0.42" href="#img2" x="2" y="2" />
- <use id="Layer 2" style="opacity: 0.769" href="#img3" x="3" y="3" />
- <text id="SD" style="transform: matrix(1,0,0,1,7,27);paint-order:stroke fill markers;stroke: #826c34;stroke-width: 2;stroke-linejoin: round;" >
- <tspan x="0" y="0" class="txt0">S</tspan><tspan y="0" class="txt0">D
-</tspan>
- </text>
+ <use id="Layer 2" href="#img1" x="1" y="2" />
</svg> \ No newline at end of file
diff --git a/sd-plugin/src/main/resources/META-INF/pluginIcon_dark.svg b/sd-plugin/src/main/resources/META-INF/pluginIcon_dark.svg
index 9babe4c4ef4..caacd6a053e 100644
--- a/sd-plugin/src/main/resources/META-INF/pluginIcon_dark.svg
+++ b/sd-plugin/src/main/resources/META-INF/pluginIcon_dark.svg
@@ -1,19 +1,10 @@
-<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" width="40" height="40">
- <title>pluginIcon</title>
+<svg version="1.2" baseProfile="tiny-ps" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
+ <title>New Project</title>
<defs>
- <image width="40" height="40" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoAQMAAAC2MCouAAAAAXNSR0IB2cksfwAAAANQTFRFAAAAp3o92gAAAAF0Uk5TAEDm2GYAAAAMSURBVHicY2AYWQAAAPAAAQaUif0AAAAASUVORK5CYII="/>
- <image width="36" height="36" id="img2" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkAQMAAADbzgrbAAAAAXNSR0IB2cksfwAAAANQTFRFuubnWfllrQAAAAxJREFUeJxjYBieAAAA2AABOXA/oAAAAABJRU5ErkJggg=="/>
- <image width="34" height="34" id="img3" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiAQMAAAAAiZmBAAAAAXNSR0IB2cksfwAAAAZQTFRFAAAAP5aZJJgdHgAAAAJ0Uk5TAP9bkSK1AAAAWUlEQVR4nI3Ouw2AMAxF0YcoXGYERsloyWiMwhgUiIsTKxESDS5O49+T7JRXpgm7tMAhreANg0tK3Q3uNghhVfno+In/lum4kKfjY3plsJ4qEkZaX6uuefMBOOp0ufGf8MYAAAAASUVORK5CYII="/>
+ <image width="30" height="29" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAdCAMAAACKeiw+AAAAAXNSR0IB2cksfwAAAUpQTFRFAAAAHKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0HKy0lOzY/wAAAG50Uk5TAA5Acarj/8dVMgdq1LgjXdzxzbAfO/iV1epHHGO/f9hcFZ3lQiR08oAPeL7CuWkIYKieoI8u9/n69en2/eAX6GY6rljt7MzmWv4ac5jwEO5RM7381k8skCnX3srvyDdB6/N8jNLnBfT7wXqSr7W47lQGAAABpElEQVR4nIVT6z8CQRS9+7qVNk3FKiqUIvJWbSLvjQh5hkgeef//X83s2rb6hfNhZvecmXvP3LkD8AOOF0QJKWyi3cFBO3ocThmbcDl7e1pVzk08Xp+9j333Cy6ieN2t8oA/IA42Iw4FQ+gPW2oIh0fa0o1GomjqnBujYx1mYvFxv9vIP+jFCejEaAi9vfpm0eOkexOTU8npmVmYm19YXEpRA6LCaHAQ4qDTUlrJqFkeJGU5t7KaBwiii/F29LEka+r6xmZ6C7Z3+uJaYZdG3UM7QFEMCCyHpwCQ2s9Tmf6sanQ4QLEIMRtJMTlbCh+yeYfJyhEdjtEWgzJqutUT9fTs3JRz24xCLDdlmCmkoxe/ywCXauQvGVQJDGuWXJGudGvXN9RR1ZAT8i1l7lCqNA+WVmoJtQRwX394fHrmzYM1BKMs2mlpLeMDkF+ymVeS18siNAD4gF5UOMnW3yj7/vGZ/KoBK6rMW1fSCfNKIEi6X6gR9L92AE7u1kwDFiNjZytiqGX1P40MXFAMYPRKoyBVJC2hzAV/PSKGRrFSpogVGxb3De/eO/7N6EMHAAAAAElFTkSuQmCC"/>
</defs>
<style>
tspan { white-space:pre }
- .txt0 { font-size: 20px;fill: #efab00;font-weight: 400;font-family: "DejaVuSans", "DejaVu Sans" }
</style>
- <use id="Background" href="#img1" x="0" y="0" />
- <use id="Layer 1" style="opacity: 0.42" href="#img2" x="2" y="2" />
- <use id="Layer 2" style="opacity: 0.769" href="#img3" x="3" y="3" />
- <text id="SD" style="transform: matrix(1,0,0,1,7,27);paint-order:stroke fill markers;stroke: #826c34;stroke-width: 2;stroke-linejoin: round;" >
- <tspan x="0" y="0" class="txt0">S</tspan><tspan y="0" class="txt0">D
-</tspan>
- </text>
+ <use id="Layer 2" href="#img1" x="1" y="2" />
</svg> \ No newline at end of file