Commit 0d4efd05 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ added some support for formatting

parent 8010d553
Loading
Loading
Loading
Loading
+78 −1
Original line number Diff line number Diff line
@@ -5,6 +5,9 @@ package de.ugoe.cs.swe.formatting

import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter
import org.eclipse.xtext.formatting.impl.FormattingConfig
import de.ugoe.cs.swe.services.TTCN3GrammarAccess
import com.google.inject.Inject

// import com.google.inject.Inject;
// import de.ugoe.cs.swe.services.TTCN3GrammarAccess

@@ -18,7 +21,7 @@ import org.eclipse.xtext.formatting.impl.FormattingConfig
 */
class TTCN3Formatter extends AbstractDeclarativeFormatter {

//	@Inject extension TTCN3GrammarAccess
    @Inject extension TTCN3GrammarAccess
	
	override protected void configureFormatting(FormattingConfig c) {
// It's usually a good idea to activate the following three statements.
@@ -26,5 +29,79 @@ class TTCN3Formatter extends AbstractDeclarativeFormatter {
//		c.setLinewrap(0, 1, 2).before(SL_COMMENTRule)
//		c.setLinewrap(0, 1, 2).before(ML_COMMENTRule)
//		c.setLinewrap(0, 1, 1).after(ML_COMMENTRule)
        for(pair: findKeywordPairs('{', '}')) {
            c.setIndentation(pair.first, pair.second)
            c.setLinewrap(1).after(pair.first)
            c.setLinewrap(1).before(pair.second)
            c.setLinewrap(1).after(pair.second)
        }
        
        
        for(keyword: findKeywords('type')) {
            c.setLinewrap().before(keyword)
            c.setLinewrap().after(keyword)
        }

        for (r: findRuleCalls(structFieldDefRule)) {
            c.setLinewrap.before(r)
        }

        for (r: findRuleCalls(TYPEDEFKEYWORDRule)) {
            c.setLinewrap.before(r)
        }

        for (r: findRuleCalls(TEMPLATEKEYWORDRule)) {
            c.setLinewrap.before(r)
        }

        for (r: findRuleCalls(SEMICOLONRule)) {
            c.setLinewrap.after(r)
        }

        for (r: findRuleCalls(DOTRule)) {
            c.setNoSpace.before(r)
            c.setNoSpace.after(r)
        }


        for (r: findRuleCalls(moduleDefinitionRule)) {
            c.setLinewrap.before(r)
            c.setLinewrap.after(r)
        }

        for (r: findRuleCalls(componentElementDefRule)) {
            c.setLinewrap.before(r)
        }

        for (r: findRuleCalls(messageListRule)) {
            c.setLinewrap.before(r)
        }

        
        for (r: findRuleCalls(LBRACKETRule)) {
            c.setLinewrap.after(r)
            c.setIndentationIncrement.after(r)
        }



        for (r: findRuleCalls(RBRACKETRule)) {
            c.setIndentationDecrement.before(r)
            c.setLinewrap.before(r)
            c.setLinewrap(2,2,2).after(r)
        }


        for(keyword: findKeywords('group')) {
//            c.setNoLinewrap().before(keyword)
//            c.setLinewrap().after(keyword)
        }
        
        for(keyword: findKeywords('port')) {
//            c.setNoLinewrap().before(keyword)
//            c.setLinewrap().after(keyword)
        }
        
        
	}
}