Consider the formatting of this JavaScript code:
$("#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"
});
How should I configure the JavaScript formatter in Eclipse (i.e., Preferences
> JavaScript
> Code Style
> Formatter
) to make sure this code looks acceptable after the auto-formatting (SHIFT + CTRL + F) is applied to it? I can make Eclipse to put each field of the JSON object on a new line, but the outcome will look messy. I also can disable inserting line breakes after each field, then the entire object will be in one line.
Is it possible to disable any insertions/removals of line breaks inside JSON objects? If it's not possible, how should I deal with auto-formatting of this code?
I also have another example:
jQuery("#dataTable").jqGrid(
'navGrid',
'#pagingDiv',
{},
{reloadAfterSubmit:false},
{reloadAfterSubmit:false},
{reloadAfterSubmit:false},
{sopt:['cn','bw','eq','ne','lt','gt','ew']}
);
It's a method invocation. Normally, all method arguments should be in the same line. But here I want each argument to be on a new line. How can I make this code to pass auto-formatting?
Update:
I use Eclipse Kepler for Java EE Developers. I think my JavaScript editor is a part of the JavaScript Development Tools plugin which, in turn, is a part of the Eclipse Web Developer Tools package.