diff --git a/README.md b/README.md index 6576fc8..c3158d6 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,9 @@ # rideplugin ![Build](https://github.com/wavesplatform/ride-intellij-plugin/workflows/Build/badge.svg) -[![Version](https://img.shields.io/jetbrains/plugin/v/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) -[![Downloads](https://img.shields.io/jetbrains/plugin/d/PLUGIN_ID.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) - -## Template ToDo list -- [x] Create a new [IntelliJ Platform Plugin Template][template] project. -- [ ] Get familiar with the [template documentation][template]. -- [ ] Verify the [pluginGroup](./gradle.properties), [plugin ID](./src/main/resources/META-INF/plugin.xml) and [sources package](./src/main/kotlin). -- [ ] Review the [Legal Agreements](https://plugins.jetbrains.com/docs/marketplace/legal-agreements.html). -- [ ] [Publish a plugin manually](https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html?from=IJPluginTemplate) for the first time. -- [ ] Set the Plugin ID in the above README badges. -- [ ] Set the [Deployment Token](https://plugins.jetbrains.com/docs/marketplace/plugin-upload.html). -- [ ] Click the Watch button on the top of the [IntelliJ Platform Plugin Template][template] to be notified about releases containing new features and fixes. +[![Version](https://img.shields.io/jetbrains/plugin/v/20416-ride.svg)](https://plugins.jetbrains.com/plugin/20416-ride) +[![Downloads](https://img.shields.io/jetbrains/plugin/d/20416-ride.svg)](https://plugins.jetbrains.com/plugin/PLUGIN_ID) + The plugin provides support for RIDE language @@ -21,6 +12,7 @@ Features:
  • Syntax validation
  • Keyword completion
  • Syntax highlighting and color schemes
  • +
  • Built-in structures, types and functions completion
  • @@ -28,7 +20,7 @@ Features:
    - Using IDE built-in plugin system: - Settings/Preferences > Plugins > Marketplace > Search for "ride-lang-idea-plugin" > + Settings/Preferences > Plugins > Marketplace > Search for "ride" > Install Plugin - Manually: diff --git a/gradle.properties b/gradle.properties index 05bf6ee..7622c36 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ platformVersion=2021.3.3 platformPlugins= # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 213 -pluginUntilBuild = 222.* +pluginUntilBuild = 223.* # Opt-out flag for bundling Kotlin standard library -> https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library # suppress inspection "UnusedProperty" diff --git a/src/main/gen/com/wavesplatform/rideplugin/parser/RideParser.java b/src/main/gen/com/wavesplatform/rideplugin/parser/RideParser.java index 7e51068..1c9ffee 100644 --- a/src/main/gen/com/wavesplatform/rideplugin/parser/RideParser.java +++ b/src/main/gen/com/wavesplatform/rideplugin/parser/RideParser.java @@ -496,8 +496,8 @@ private static boolean else_block_1(PsiBuilder b, int l) { } /* ********************************************************** */ - // ELSE IF if_cond (THEN? (expr | closure)) - // | ELSE IF LPAREN? if_cond RPAREN? (THEN? (expr | closure)) + // ELSE IF if_cond (THEN (expr | closure)) + // | ELSE IF LPAREN? if_cond RPAREN? (THEN (expr | closure)) public static boolean else_if_block(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block")) return false; if (!nextTokenIs(b, ELSE)) return false; @@ -509,7 +509,7 @@ public static boolean else_if_block(PsiBuilder b, int l) { return r; } - // ELSE IF if_cond (THEN? (expr | closure)) + // ELSE IF if_cond (THEN (expr | closure)) private static boolean else_if_block_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_0")) return false; boolean r; @@ -521,24 +521,17 @@ private static boolean else_if_block_0(PsiBuilder b, int l) { return r; } - // THEN? (expr | closure) + // THEN (expr | closure) private static boolean else_if_block_0_3(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_0_3")) return false; boolean r; Marker m = enter_section_(b); - r = else_if_block_0_3_0(b, l + 1); + r = consumeToken(b, THEN); r = r && else_if_block_0_3_1(b, l + 1); exit_section_(b, m, null, r); return r; } - // THEN? - private static boolean else_if_block_0_3_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "else_if_block_0_3_0")) return false; - consumeToken(b, THEN); - return true; - } - // expr | closure private static boolean else_if_block_0_3_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_0_3_1")) return false; @@ -548,7 +541,7 @@ private static boolean else_if_block_0_3_1(PsiBuilder b, int l) { return r; } - // ELSE IF LPAREN? if_cond RPAREN? (THEN? (expr | closure)) + // ELSE IF LPAREN? if_cond RPAREN? (THEN (expr | closure)) private static boolean else_if_block_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_1")) return false; boolean r; @@ -576,24 +569,17 @@ private static boolean else_if_block_1_4(PsiBuilder b, int l) { return true; } - // THEN? (expr | closure) + // THEN (expr | closure) private static boolean else_if_block_1_5(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_1_5")) return false; boolean r; Marker m = enter_section_(b); - r = else_if_block_1_5_0(b, l + 1); + r = consumeToken(b, THEN); r = r && else_if_block_1_5_1(b, l + 1); exit_section_(b, m, null, r); return r; } - // THEN? - private static boolean else_if_block_1_5_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "else_if_block_1_5_0")) return false; - consumeToken(b, THEN); - return true; - } - // expr | closure private static boolean else_if_block_1_5_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "else_if_block_1_5_1")) return false; @@ -1472,8 +1458,8 @@ public static boolean literal_expr(PsiBuilder b, int l) { return r; } - // IF if_cond (THEN? (expr | closure)) else_if_block* else_block? - // | IF LPAREN if_cond RPAREN (THEN? (expr | closure)) else_if_block* else_block? + // IF if_cond (THEN (expr | closure)) else_if_block* else_block? + // | IF LPAREN if_cond RPAREN (THEN (expr | closure)) else_if_block* else_block? public static boolean if_expr(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr")) return false; if (!nextTokenIsSmart(b, IF)) return false; @@ -1485,7 +1471,7 @@ public static boolean if_expr(PsiBuilder b, int l) { return r; } - // IF if_cond (THEN? (expr | closure)) else_if_block* else_block? + // IF if_cond (THEN (expr | closure)) else_if_block* else_block? private static boolean if_expr_0(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_0")) return false; boolean r; @@ -1499,24 +1485,17 @@ private static boolean if_expr_0(PsiBuilder b, int l) { return r; } - // THEN? (expr | closure) + // THEN (expr | closure) private static boolean if_expr_0_2(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_0_2")) return false; boolean r; Marker m = enter_section_(b); - r = if_expr_0_2_0(b, l + 1); + r = consumeTokenSmart(b, THEN); r = r && if_expr_0_2_1(b, l + 1); exit_section_(b, m, null, r); return r; } - // THEN? - private static boolean if_expr_0_2_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "if_expr_0_2_0")) return false; - consumeTokenSmart(b, THEN); - return true; - } - // expr | closure private static boolean if_expr_0_2_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_0_2_1")) return false; @@ -1544,7 +1523,7 @@ private static boolean if_expr_0_4(PsiBuilder b, int l) { return true; } - // IF LPAREN if_cond RPAREN (THEN? (expr | closure)) else_if_block* else_block? + // IF LPAREN if_cond RPAREN (THEN (expr | closure)) else_if_block* else_block? private static boolean if_expr_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_1")) return false; boolean r; @@ -1559,24 +1538,17 @@ private static boolean if_expr_1(PsiBuilder b, int l) { return r; } - // THEN? (expr | closure) + // THEN (expr | closure) private static boolean if_expr_1_4(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_1_4")) return false; boolean r; Marker m = enter_section_(b); - r = if_expr_1_4_0(b, l + 1); + r = consumeTokenSmart(b, THEN); r = r && if_expr_1_4_1(b, l + 1); exit_section_(b, m, null, r); return r; } - // THEN? - private static boolean if_expr_1_4_0(PsiBuilder b, int l) { - if (!recursion_guard_(b, l, "if_expr_1_4_0")) return false; - consumeTokenSmart(b, THEN); - return true; - } - // expr | closure private static boolean if_expr_1_4_1(PsiBuilder b, int l) { if (!recursion_guard_(b, l, "if_expr_1_4_1")) return false; diff --git a/src/main/grammars/Ride.bnf b/src/main/grammars/Ride.bnf index 0229ff4..ab63970 100644 --- a/src/main/grammars/Ride.bnf +++ b/src/main/grammars/Ride.bnf @@ -211,11 +211,11 @@ index_expr ::= ( ) LBRACKET expr RBRACKET (DOT expr)? private prefix_group ::= if_expr -if_expr ::= IF if_cond (THEN? (expr | closure)) else_if_block* else_block? -| IF LPAREN if_cond RPAREN (THEN? (expr | closure)) else_if_block* else_block? {pin=1} +if_expr ::= IF if_cond (THEN (expr | closure)) else_if_block* else_block? +| IF LPAREN if_cond RPAREN (THEN (expr | closure)) else_if_block* else_block? {pin=1} if_cond ::= expr -else_if_block ::= ELSE IF if_cond (THEN? (expr | closure)) -| ELSE IF LPAREN? if_cond RPAREN? (THEN? (expr | closure)) {pin=2} +else_if_block ::= ELSE IF if_cond (THEN (expr | closure)) +| ELSE IF LPAREN? if_cond RPAREN? (THEN (expr | closure)) {pin=2} else_block ::= ELSE (expr | closure) {pin = 1} private primary_group ::= simple_ref_expr | paren_expr | literal_expr diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index b54bae6..521d15e 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -39,8 +39,8 @@ - - + +