package com.redhat.ceylon.eclipse.code.editor; import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.CommonTokenStream; import org.antlr.runtime.RecognitionException; import org.eclipse.jface.text.DocumentCommand; import org.eclipse.jface.text.IAutoEditStrategy; import org.eclipse.jface.text.IDocument; import com.redhat.ceylon.compiler.typechecker.util.NewlineFixingStringStream; import com.redhat.ceylon.compiler.typechecker.parser.CeylonLexer; import com.redhat.ceylon.compiler.typechecker.parser.CeylonParser; public class CeylonAutoEditStrategy implements IAutoEditStrategy { @Override public void customizeDocumentCommand(IDocument document, DocumentCommand command) { ANTLRStringStream stream = new NewlineFixingStringStream(document.get()); CeylonLexer lexer = new CeylonLexer(stream); CommonTokenStream ts = new CommonTokenStream(lexer); ts.fill(); try { new CeylonParser(ts).compilationUnit(); } catch (RecognitionException e) {} new AutoEdit(document, ts.getTokens(), command) .customizeDocumentCommand(); } }