【发布时间】:2014-02-05 08:23:08
【问题描述】:
考虑这段 JavaScript 代码的格式:
$("#dataTable").jqGrid({
url: base + "products-all",
datatype: "json",
jsonReader: {repeatitems: false, id: "ref"},
colNames:["ID","Product name","Price"],
colModel:[
{name:"id",index:"id", width:40, align:"right", classes:"grid-col"},
{name:"name",index:"name", width:600, align:"left", classes:"grid-col", editable:true, editoptions:{size:25}},
{name:"price",index:"price", width:100, align:"right", classes:"grid-col", formatter:'currency', formatoptions:{decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "$ "}}
],
rowNum:5,
rowList:[5,10,20],
height:114,
shrinkToFit: true,
sortname: 'id',
sortorder: "asc",
pager: "#pagingDiv",
viewrecords: true,
caption: "Products"
});
我应该如何在 Eclipse 中配置 JavaScript 格式化程序(即,Preferences > JavaScript > Code Style > Formatter)以确保此代码在自动格式化后看起来可以接受(SHIFT kbd> + CTRL + F) 被应用到了吗?我可以让 Eclipse 将 JSON 对象的每个字段放在一个新行上,但结果会看起来很乱。我还可以禁用在每个字段后插入换行符,然后整个对象将在一行中。
是否可以禁用 JSON 对象内的任何换行符的插入/删除?如果不可能,我应该如何处理这段代码的自动格式化?
我还有一个例子:
jQuery("#dataTable").jqGrid(
'navGrid',
'#pagingDiv',
{},
{reloadAfterSubmit:false},
{reloadAfterSubmit:false},
{reloadAfterSubmit:false},
{sopt:['cn','bw','eq','ne','lt','gt','ew']}
);
这是一个方法调用。通常,所有方法参数都应该在同一行。但在这里我希望每个论点都在一个新的行上。如何使此代码通过自动格式化?
更新:
我使用 Eclipse Kepler for Java EE 开发人员。我认为我的 JavaScript 编辑器是 JavaScript Development Tools 插件的一部分,而该插件又是 Eclipse Web Developer Tools 包的一部分。
【问题讨论】:
-
我认为很难根据自己的喜好来区分每条规则。我启用格式化程序标志(与@Keyur 描述相同的位置)并将 //@formatter:off 放在 json 之前的行上。
-
@cox 我用我的 Eclipse 安装的详细信息更新了我的问题。我的
//@formatter:off功能仅适用于 Java 代码。我可以为 JavaScript 获得此功能的唯一方法是安装 Aptana Studio plugin 并使用它自己的 JavaScript 编辑器。但是 Aptana Studio 是一个比较重的东西,如果可以的话,我想避免使用它。我很好奇,你使用 Aptana Studio 插件吗?如果没有,你的 Eclipse 中安装了什么 JavaScript 编辑器插件? -
对不起!我使用 Eclipse、Aptana(独立)和 LiClipse(试用/重试...)。那是来自 Aptana,它们看起来一样!
-
@cox 谢谢!无论如何,您的评论很有帮助。
-
现在有 Eclipse Wild Web Developer:projects.eclipse.org/proposals/eclipse-wild-web-developer
标签: javascript eclipse