<NME> Imports.txt
<BEF> Elm File
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Something')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Some')
      PsiElement(DOT)('.')
      PsiElement(UPPER_CASE_IDENTIFIER)('Long')
      PsiElement(DOT)('.')
      PsiElement(UPPER_CASE_IDENTIFIER)('Name')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Foo')
    PsiWhiteSpace(' ')
    ElmExposingList(EXPOSING_LIST)
      PsiElement(EXPOSING)('exposing')
      PsiWhiteSpace(' ')
      PsiElement(LEFT_PARENTHESIS)('(')
      ElmExposedType(EXPOSED_TYPE)
        PsiElement(UPPER_CASE_IDENTIFIER)('A')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      ElmExposedValue(EXPOSED_VALUE)
        PsiElement(LOWER_CASE_IDENTIFIER)('a')
      PsiElement(COMMA)(',')
      PsiWhiteSpace(' ')
      ElmExposedType(EXPOSED_TYPE)
        PsiElement(UPPER_CASE_IDENTIFIER)('B')
        PsiElement(LEFT_PARENTHESIS)('(')
        PsiElement(DOUBLE_DOT)('..')
        PsiElement(RIGHT_PARENTHESIS)(')')
      PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Bar')
    PsiWhiteSpace(' ')
    ElmExposingList(EXPOSING_LIST)
      PsiElement(EXPOSING)('exposing')
      PsiWhiteSpace(' ')
      PsiElement(LEFT_PARENTHESIS)('(')
      PsiElement(DOUBLE_DOT)('..')
      PsiElement(RIGHT_PARENTHESIS)(')')
  PsiElement(VIRTUAL_END_DECL)('\n')
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Bar')
    PsiWhiteSpace(' ')
    ElmAsClause(AS_CLAUSE)
      PsiElement(AS)('as')
      PsiWhiteSpace(' ')
      PsiElement(UPPER_CASE_IDENTIFIER)('Quux')
  PsiElement(VIRTUAL_END_DECL)('\n')
  PsiWhiteSpace('\n')
  ElmImportClause(IMPORT_CLAUSE)
    PsiElement(IMPORT)('import')
    PsiWhiteSpace('\n')
    PsiComment(LINE_COMMENT)('-- this')
    PsiWhiteSpace('\n')
    PsiWhiteSpace(' ')
    ElmUpperCaseQID(UPPER_CASE_QID)
      PsiElement(UPPER_CASE_IDENTIFIER)('Sthg')
    PsiWhiteSpace('\n')
    PsiWhiteSpace(' ')
    PsiComment(BLOCK_COMMENT)('{- is -}')
    PsiWhiteSpace('\n')
    PsiWhiteSpace(' ')
    ElmAsClause(AS_CLAUSE)
      PsiElement(AS)('as')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiComment(BLOCK_COMMENT)('{- {- a -} -}')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiElement(UPPER_CASE_IDENTIFIER)('Sthg')
    PsiWhiteSpace('\n')
    PsiWhiteSpace(' ')
    PsiComment(START_COMMENT)('{-')
    PsiComment(COMMENT_CONTENT)(' is ')
    PsiComment(END_COMMENT)('-}')
    PsiWhiteSpace('\n')
    PsiWhiteSpace(' ')
    ElmAsClause(AS_CLAUSE)
      PsiElement(AS)('as')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiComment(START_COMMENT)('{-')
      PsiComment(COMMENT_CONTENT)(' ')
      PsiComment(COMMENT_CONTENT)('{-')
      PsiComment(COMMENT_CONTENT)(' a ')
      PsiComment(COMMENT_CONTENT)('-}')
      PsiComment(COMMENT_CONTENT)(' ')
      PsiComment(END_COMMENT)('-}')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiElement(UPPER_CASE_IDENTIFIER)('S')
      PsiComment(BLOCK_COMMENT)('{--}')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      ElmExposedType(EXPOSED_TYPE)
        PsiElement(UPPER_CASE_IDENTIFIER)('X')
      PsiElement(COMMA)(',')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      ElmExposedValue(EXPOSED_VALUE)
        PsiElement(LOWER_CASE_IDENTIFIER)('y')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiElement(LEFT_PARENTHESIS)('(')
      PsiComment(START_COMMENT)('{-')
      PsiComment(END_COMMENT)('-}')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      ElmExposedType(EXPOSED_TYPE)
        PsiElement(LOWER_CASE_IDENTIFIER)('y')
      PsiWhiteSpace('\n')
      PsiWhiteSpace(' ')
      PsiElement(RIGHT_PARENTHESIS)(')')

<MSG> Add quick documentation support for some types (#50)

* Only emit one token per comment block
* Add doc generation for simple function declarations
* Add docs for type declarations

<DFF> @@ -88,22 +88,14 @@ Elm File
       PsiElement(UPPER_CASE_IDENTIFIER)('Sthg')
     PsiWhiteSpace('\n')
     PsiWhiteSpace(' ')
-    PsiComment(START_COMMENT)('{-')
-    PsiComment(COMMENT_CONTENT)(' is ')
-    PsiComment(END_COMMENT)('-}')
+    PsiComment(BLOCK_COMMENT)('{- is -}')
     PsiWhiteSpace('\n')
     PsiWhiteSpace(' ')
     ElmAsClause(AS_CLAUSE)
       PsiElement(AS)('as')
       PsiWhiteSpace('\n')
       PsiWhiteSpace(' ')
-      PsiComment(START_COMMENT)('{-')
-      PsiComment(COMMENT_CONTENT)(' ')
-      PsiComment(COMMENT_CONTENT)('{-')
-      PsiComment(COMMENT_CONTENT)(' a ')
-      PsiComment(COMMENT_CONTENT)('-}')
-      PsiComment(COMMENT_CONTENT)(' ')
-      PsiComment(END_COMMENT)('-}')
+      PsiComment(BLOCK_COMMENT)('{- {- a -} -}')
       PsiWhiteSpace('\n')
       PsiWhiteSpace(' ')
       PsiElement(UPPER_CASE_IDENTIFIER)('S')
@@ -120,8 +112,7 @@ Elm File
       PsiWhiteSpace('\n')
       PsiWhiteSpace(' ')
       PsiElement(LEFT_PARENTHESIS)('(')
-      PsiComment(START_COMMENT)('{-')
-      PsiComment(END_COMMENT)('-}')
+      PsiComment(BLOCK_COMMENT)('{--}')
       PsiWhiteSpace('\n')
       PsiWhiteSpace(' ')
       ElmExposedType(EXPOSED_TYPE)
@@ -133,4 +124,4 @@ Elm File
         PsiElement(LOWER_CASE_IDENTIFIER)('y')
       PsiWhiteSpace('\n')
       PsiWhiteSpace(' ')
-      PsiElement(RIGHT_PARENTHESIS)(')')
\ No newline at end of file
+      PsiElement(RIGHT_PARENTHESIS)(')')

Add quick documentation support for some types (#50)