diff --git a/snippets/README.md b/snippets/README.md
index 8264e8e2e..f8263b088 100644
--- a/snippets/README.md
+++ b/snippets/README.md
@@ -1,20 +1,20 @@
-## Available Dart 1 and Dart 2 Backwards Compatible Code Snippets
+## Available Code Snippets
Below is a list of all available Dart 2 builder-compatible over_react snippets and their
triggers for Webstorm/IntelliJ and VS Code.
-| Trigger | Content |
-| -------: | ------- |
-| `orStless` | Dart 2 stateless component skeleton |
-| `orCStless` | Dart 2 commented stateless component skeleton |
-| `orAbsStless` | Dart 2 abstract stateless component skeleton |
-| `orCAbsStless` | Dart 2 commented abstract stateless component skeleton |
-| `orStful` | Dart 2 stateful component skeleton |
-| `orCStful` | Dart 2 commented stateful component skeleton |
-| `orAbsStful` | Dart 2 abstract stateful component skeleton |
-| `orCAbsStful` | Dart 2 commented abstract stateful component skeleton |
-| `orPropsMixin` | Dart 2 prop mixin skeleton |
-| `orStateMixin` | Dart 2 state mixin skeleton |
+| Trigger - Dart 1/2 Compatible | Trigger - Dart 2 Only | Content |
+| -------: | ------- | ------- |
+| `orStless` | `ord2Stless` | Dart 2 stateless component skeleton |
+| `orCStless` | `ord2CStless` | Dart 2 commented stateless component skeleton |
+| `orAbsStless` | `ord2AbsStless` | Dart 2 abstract stateless component skeleton |
+| `orCAbsStless` | `ord2CAbsStless` | Dart 2 commented abstract stateless component skeleton |
+| `orStful` | `ord2Stful` | Dart 2 stateful component skeleton |
+| `orCStful` | `ord2CStful` | Dart 2 commented stateful component skeleton |
+| `orAbsStful` | `ord2AbsStful` | Dart 2 abstract stateful component skeleton |
+| `orCAbsStful` | `orCAbsStful` | Dart 2 commented abstract stateful component skeleton |
+| `orPropsMixin` | N/A | Dart 2 prop mixin skeleton (unnecessary in Dart 2 only) |
+| `orStateMixin` | N/A | Dart 2 state mixin skeleton (unnecessary in Dart 2 only) |
## WebStorm and IntelliJ Snippets
@@ -24,10 +24,16 @@ triggers for Webstorm/IntelliJ and VS Code.
1. Copy the command below and run it in your terminal.
+ For Dart 1/2 compatible snippets:
```bash
- curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/snippets.xml | pbcopy
+ curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/dart1-2/snippets.xml | pbcopy
```
+ For Dart 2 only snippets:
+ ```bash
+ curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/dart2-only/snippets.xml | pbcopy
+ ```
+
2. Open preferences and select "Editor" > "Live Templates"
3. (Optional) Create a new "OverReact Snippets" group by clicking the "+" button in the
upper right corner and selecting "Template Group..."
@@ -43,8 +49,14 @@ triggers for Webstorm/IntelliJ and VS Code.
1. Copy the command below and run it in your terminal.
+ For Dart 1/2 compatible snippets:
+ ```bash
+ curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/dart1-2/snippets.json | pbcopy
+ ```
+
+ For Dart 2 only snippets:
```bash
- curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/snippets.json | pbcopy
+ curl https://raw.githubusercontent.com/Workiva/over_react/master/snippets/dart2-only/snippets.json | pbcopy
```
2. Click on "Code", select "Preferences" and select "User Snippets"
diff --git a/snippets/snippets.json b/snippets/dart1-2/snippets.json
similarity index 100%
rename from snippets/snippets.json
rename to snippets/dart1-2/snippets.json
diff --git a/snippets/snippets.xml b/snippets/dart1-2/snippets.xml
similarity index 100%
rename from snippets/snippets.xml
rename to snippets/dart1-2/snippets.xml
diff --git a/snippets/dart2-only/snippets.json b/snippets/dart2-only/snippets.json
new file mode 100644
index 000000000..b5b2a0edb
--- /dev/null
+++ b/snippets/dart2-only/snippets.json
@@ -0,0 +1,302 @@
+{
+ "statelessComponentsDart2": {
+ "prefix": "ord2Stless",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@Factory()",
+ "UiFactory<${2:MyComponent}Props> ${2:MyComponent} = _$${2:MyComponent};",
+ "",
+ "@Props()",
+ "class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@Component()",
+ "class ${2:MyComponent}Component extends UiComponent<${2:MyComponent}Props> {",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "}"
+ ],
+ "description": "Creates a stateless OverReact component compatible with Dart 2"
+ },
+ "statelessCommentedComponentsDart2": {
+ "prefix": "ord2CStless",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@Factory()",
+ "UiFactory<${2:MyComponent}Props> ${2:MyComponent} = _$${2:MyComponent};",
+ "",
+ "@Props()",
+ "class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@Component()",
+ "class ${2:MyComponent}Component extends UiComponent<${2:MyComponent}Props> {",
+ "\t// Refs",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// React Component Specifications and Lifecycle Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Private Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public API Methods",
+ "\t// --------------------------------------------------------------------------",
+ "}"
+ ],
+ "description": "Creates a commented stateless OverReact component compatible with Dart 2"
+ },
+ "abstractStatelessComponentsDart2": {
+ "prefix": "ord2AbsStless",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@AbstractProps()",
+ "abstract class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@AbstractComponent()",
+ "abstract class ${2:MyComponent}Component extends UiComponent {",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "}"
+ ],
+ "description": "Creates an abstract stateless OverReact component compatible with Dart 2"
+ },
+ "abstractCommentedStatelessComponentsDart2": {
+ "prefix": "ord2CAbsStless",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@AbstractProps()",
+ "abstract class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@AbstractComponent()",
+ "abstract class ${2:MyComponent}Component extends UiComponent {",
+ "\t// Refs",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// React Component Specifications and Lifecycle Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Private Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public API Methods",
+ "\t// --------------------------------------------------------------------------",
+ "}"
+ ],
+ "description": "Creates an commented abstract stateless OverReact component compatible with Dart 2"
+ },
+ "statefulComponentsDart2": {
+ "prefix": "ord2Stful",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@Factory()",
+ "UiFactory<${2:MyComponent}Props> ${2:MyComponent} = _$${2:MyComponent};",
+ "",
+ "@Props()",
+ "class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@State()",
+ "class _$${2:MyComponent}State extends UiState {",
+ "",
+ "}",
+ "",
+ "@Component()",
+ "class ${2:MyComponent}Component extends UiStatefulComponent<${2:MyComponent}Props, ${2:MyComponent}State> {",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\tMap getInitialState() => (newState());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "}"
+ ],
+ "description": "Creates a stateful OverReact component compatible with Dart 2"
+ },
+ "statefulCommentedComponentsDart2": {
+ "prefix": "ord2CStful",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@Factory()",
+ "UiFactory<${2:MyComponent}Props> ${2:MyComponent} = _$${2:MyComponent};",
+ "",
+ "@Props()",
+ "class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@State()",
+ "class _$${2:MyComponent}State extends UiState {",
+ "",
+ "}",
+ "",
+ "@Component()",
+ "class ${2:MyComponent}Component extends UiStatefulComponent<${2:MyComponent}Props, ${2:MyComponent}State> {",
+ "\t// Refs",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// React Component Specifications and Lifecycle Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\tMap getInitialState() => (newState());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Private Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public API Methods",
+ "\t// --------------------------------------------------------------------------",
+ "}"
+ ],
+ "description": "Creates a commented stateful OverReact component compatible with Dart 2"
+ },
+ "abstractStatefulComponentsDart2": {
+ "prefix": "ord2AbsStful",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@AbstractProps()",
+ "abstract class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@AbstractState()",
+ "abstract class _$${2:MyComponent}State extends UiState {",
+ "",
+ "}",
+ "",
+ "@AbstractComponent()",
+ "abstract class ${2:MyComponent}Component extends UiStatefulComponent {",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\tMap getInitialState() => (newState());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "}"
+ ],
+ "description": "Creates an abstract stateful OverReact component compatible with Dart 2"
+ },
+ "abstractCommentedStatefulComponentsDart2": {
+ "prefix": "ord2CAbsStful",
+ "body": [
+ "import 'package:over_react/over_react.dart';",
+ "",
+ "part '${1:FileName}.over_react.g.dart';",
+ "",
+ "@AbstractProps()",
+ "abstract class _$${2:MyComponent}Props extends UiProps {",
+ "",
+ "}",
+ "",
+ "@AbstractState()",
+ "abstract class _$${2:MyComponent}State extends UiState {",
+ "",
+ "}",
+ "",
+ "@AbstractComponent()",
+ "abstract class ${2:MyComponent}Component extends UiStatefulComponent {",
+ "\t// Refs",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// React Component Specifications and Lifecycle Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t@override",
+ "\tMap getDefaultProps() => (newProps());",
+ "",
+ "\t@override",
+ "\tMap getInitialState() => (newState());",
+ "",
+ "\t@override",
+ "\trender() { }",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Private Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public Utility Methods",
+ "\t// --------------------------------------------------------------------------",
+ "",
+ "\t// --------------------------------------------------------------------------",
+ "\t// Public API Methods",
+ "\t// --------------------------------------------------------------------------",
+ "}"
+ ],
+ "description": "Creates an commented abstract stateful OverReact component compatible with Dart 2"
+ }
+}
\ No newline at end of file
diff --git a/snippets/dart2-only/snippets.xml b/snippets/dart2-only/snippets.xml
new file mode 100644
index 000000000..86cb3a3f7
--- /dev/null
+++ b/snippets/dart2-only/snippets.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file