2016-03-21 6 views
0

ich AbstractFormatter2 bin mit mit Xtext 2.9.2Xtext Format Kommentar mit AbstractFormatter2,

Ich mag den Kommentar in einer bestimmten Spalte setzen

Meine Syntax sieht so etwas wie dies

terminal SL_COMMENT : '*' !('\n'|'\r')* ('\r'? '\n')?; 

bis jetzt habe ich versucht, mehrere Räume vor meinem Kommentar zu setzen, aber das funktioniert nicht, entweder

def dispatch void format(Model model, extension IFormattableDocument document) { 
    SL_COMMENTRule.prepend[space "   "] 
    model.getEnte.format; 
    model.getMapset.format; 
} 

kann jeder führen meine, wie allgemein formatiert Kommentare dann, wie sie

Antwort

0

Kommentar Formatierung in einer bestimmten Spalte setzen durch commentreplacers getan

so etwas wie das folgende sollte

override createCommentReplacer(IComment comment) { 
    val EObject grammarElement = comment.getGrammarElement(); 
    if (grammarElement instanceof AbstractRule) { 
     val String ruleName = grammarElement.getName(); 
     if (ruleName.startsWith("SL")) { 
      if (comment.getLineRegions().get(0).getIndentation().getLength() > 0) { 
       return new SinglelineDocCommentReplacer(comment, "//") { 

        override configureWhitespace(WhitespaceReplacer leading, WhitespaceReplacer trailing) { 
         leading.getFormatting().space = "   "; 
        } 

       }; 

       } else { 
        return new SinglelineCodeCommentReplacer(comment, "//") { 
         override configureWhitespace(WhitespaceReplacer leading, WhitespaceReplacer trailing) { 
         leading.getFormatting().space = "   "; 
        } 
        } 
       } 
     } 
    } 
    super.createCommentReplacer(comment) 
} 
+0

arbeiten Vielen Dank, Das funktioniert gut, können Sie mir bitte einen Hinweis geben, wie Sie den Kommentar in eine bestimmte Spaltennummer anstatt in eine festgelegte Anzahl von Leerstellen schreiben können –