0

我写了一个 Eclipse 插件,它可以用来创建带有模板代码的 JavaScript 文件。

目前我正在使用JavaScript Development Tools,它包括该formatter功能。

我想要的是,一旦我的插件创建了一个新的 JavaScript 文件(它写在一行没有格式化),我想formatter在我的插件中调用该函数来立即格式化代码。

是否有可能做到这一点?

4

1 回答 1

1

我正在使用org.eclipse.wst.jsdt.feature插件。

以编程方式格式化 JavaScript 代码的用法与处理 Java 代码的方式相同。

如下:

    Map<?, ?> setting = DefaultCodeFormatterConstants.getEclipseDefaultSettings();
    CodeFormatter formatter = ToolFactory.createCodeFormatter(setting);
    TextEdit edit = formatter.format(CodeFormatter.K_JAVASCRIPT_UNIT, js,
            0, js.length(), 0, StringUtil.NEW_LINE);
    if (edit == null)
        return js;
    IDocument doc = new Document(js);
    try {
        edit.apply(doc);
    } catch (Exception e) {
        e.printStackTrace();
        return js;
    }
    return doc.get();

您需要提及的是,您需要从org.eclipse.wst.jsdt.

import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.text.edits.TextEdit;
import org.eclipse.wst.jsdt.core.ToolFactory;
import org.eclipse.wst.jsdt.core.formatter.CodeFormatter;
import org.eclipse.wst.jsdt.core.formatter.DefaultCodeFormatterConstants;
于 2013-09-02T02:15:43.580 回答