<NME> CaseOf.txt
<BEF> Elm File
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f1')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiErrorElement:<expr> expected
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f2')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiErrorElement:<expr>, OF or OPERATOR_IDENTIFIER expected
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f3')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(OF)('of')
      PsiErrorElement:VIRTUAL_OPEN_SECTION expected, got '
'
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(OF)('of')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      PsiErrorElement:<pattern> expected, got 'type'
        PsiElement(TYPE)('type')
      PsiWhiteSpace(' ')
      PsiElement(ALIAS)('alias')
      PsiWhiteSpace(' ')
      PsiElement(UPPER_CASE_IDENTIFIER)('Garbage')
      PsiWhiteSpace(' ')
      PsiElement(EQ)('=')
      PsiWhiteSpace(' ')
      PsiElement(UPPER_CASE_IDENTIFIER)('String')
      PsiErrorElement:unmatched input
        <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f5')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(OF)('of')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      ElmCaseOfBranch(CASE_OF_BRANCH)
        ElmPattern(PATTERN)
          ElmUnionPattern(UNION_PATTERN)
            ElmUpperCaseQID(UPPER_CASE_QID)
              PsiElement(UPPER_CASE_IDENTIFIER)('Just')
            PsiWhiteSpace(' ')
            ElmLowerPattern(LOWER_PATTERN)
              PsiElement(LOWER_CASE_IDENTIFIER)('y')
        PsiErrorElement:'::', ARROW, AS, LEFT_BRACE, LEFT_PARENTHESIS, LEFT_SQUARE_BRACKET, LOWER_CASE_IDENTIFIER, NUMBER_LITERAL, OPEN_CHAR, OPEN_QUOTE, UNDERSCORE or UPPER_CASE_IDENTIFIER expected
          <empty list>
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmValueDeclaration(VALUE_DECLARATION)
    ElmFunctionDeclarationLeft(FUNCTION_DECLARATION_LEFT)
      PsiElement(LOWER_CASE_IDENTIFIER)('f6')
    PsiWhiteSpace(' ')
    PsiElement(EQ)('=')
    PsiWhiteSpace(' ')
    ElmCaseOfExpr(CASE_OF_EXPR)
      PsiElement(CASE)('case')
      PsiWhiteSpace(' ')
      ElmValueExpr(VALUE_EXPR)
        ElmValueQID(VALUE_QID)
          PsiElement(LOWER_CASE_IDENTIFIER)('x')
      PsiWhiteSpace(' ')
      PsiElement(OF)('of')
      PsiWhiteSpace('\n')
      PsiElement(VIRTUAL_OPEN_SECTION)('        ')
      ElmCaseOfBranch(CASE_OF_BRANCH)
        ElmPattern(PATTERN)
          ElmUnionPattern(UNION_PATTERN)
            ElmUpperCaseQID(UPPER_CASE_QID)
              PsiElement(UPPER_CASE_IDENTIFIER)('Just')
            PsiWhiteSpace(' ')
            ElmLowerPattern(LOWER_PATTERN)
              PsiElement(LOWER_CASE_IDENTIFIER)('y')
        PsiWhiteSpace(' ')
        PsiElement(ARROW)('->')
        PsiWhiteSpace(' ')
        PsiErrorElement:<expr> expected, got 'type'
          PsiElement(TYPE)('type')
        PsiWhiteSpace(' ')
        PsiElement(ALIAS)('alias')
        PsiWhiteSpace(' ')
        PsiElement(UPPER_CASE_IDENTIFIER)('Garbage')
      PsiElement(VIRTUAL_END_DECL)('\n')
      PsiWhiteSpace('        ')
      ElmCaseOfBranch(CASE_OF_BRANCH)
        ElmPattern(PATTERN)
          ElmUnionPattern(UNION_PATTERN)
            ElmUpperCaseQID(UPPER_CASE_QID)
              PsiElement(UPPER_CASE_IDENTIFIER)('Nothing')
        PsiWhiteSpace(' ')
        PsiElement(ARROW)('->')
        PsiWhiteSpace(' ')
        ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
          PsiElement(NUMBER_LITERAL)('42')

<MSG> Add inspection and enter handler to complete case branches (#168)

* Add incomplete pattern inspection
* Add type params to rendered branches
* Add smart enter processor
* Add wildcard branch fix
<DFF> @@ -43,9 +43,6 @@ Elm File
           PsiElement(LOWER_CASE_IDENTIFIER)('x')
       PsiWhiteSpace(' ')
       PsiElement(OF)('of')
-      PsiErrorElement:VIRTUAL_OPEN_SECTION expected, got '
-'
-        <empty list>
   PsiElement(VIRTUAL_END_DECL)('\n')
   PsiWhiteSpace('\n')
   ElmValueDeclaration(VALUE_DECLARATION)
@@ -148,4 +145,4 @@ Elm File
         PsiElement(ARROW)('->')
         PsiWhiteSpace(' ')
         ElmNumberConstantExpr(NUMBER_CONSTANT_EXPR)
-          PsiElement(NUMBER_LITERAL)('42')
\ No newline at end of file
+          PsiElement(NUMBER_LITERAL)('42')

Add inspection and enter handler to complete case branches (#168)