package tk.eclipse.plugin.jseditor.editors; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.DefaultIndentLineAutoEditStrategy; import org.eclipse.jface.text.DocumentCommand; import org.eclipse.jface.text.IDocument; /** * Provides auto inserting for JavaScript. * * @author Naoki Takezoe * @since 2.0.3 */ public class JavaScriptAutoEditStrategy extends DefaultIndentLineAutoEditStrategy { @Override public void customizeDocumentCommand(IDocument document, DocumentCommand command) { if(command.text.equals("{")){ append(command, "}", 1); return; } if(command.text.equals("(")){ append(command, ")", 1); return; } if(command.text.equals("\"")){ append(command, "\"", 1); return; } if(command.text.equals("'")){ append(command, "'", 1); return; } try { if(command.text.equals("*") && command.offset > 0 && document.getChar(command.offset - 1) == '/'){ append(command, " */", 2); return; } } catch(BadLocationException e){ } super.customizeDocumentCommand(document, command); } private void append(DocumentCommand command, String append, int position){ command.text = command.text + append; command.doit = false; command.shiftsCaret = false; command.caretOffset = command.offset + position; } }