我在define(...)内编写了大量代码,格式如下 -
define(['angular'], function(angular) {
function foo () {
console.log("Hi") ;
}
function foo2 () {
console.log("Hi") ;
}
function foo3 () {
console.log("Hi") ;
}
} )
Eclipse缺少此格式的所有outline view输出,意思是 - 什么都没有显示。
如何使它支持这种格式,意味着 - 指导我所有的函数和变量声明?
此处附上我当前的大纲视图 -
答案 0 :(得分:8)
JSDT插件是JavaScript的默认Eclipse插件,不支持RequireJS。我建议你试试tern.java(我是tern.java的作者),它给出support for RequireJS。您将受益于RequireJS完成,超链接,悬停,验证。
我告诉你,你install AngularJS Eclipse 0.8.0(未发布)基于tern.java(因为它似乎你正在使用角度)。你将再次提出大纲问题(tern.java没有解决这个问题),但是不要犹豫create issues以改善tern.java。
答案 1 :(得分:1)
您可能还想试用Aptana Studio插件。他们的插件提供了许多不错的前端Web开发工具。
答案 2 :(得分:1)
答案 3 :(得分:1)
尝试在内部函数之前放置JsDoc“@memberOf”。
见下面的示例。您可以在“MyNameSpace”类下的大纲视图中看到“doValidation”和“put”函数。
有关JsDoc的更多信息,请查看http://kajabity.com/2012/02/how-i-introduced-jsdoc-into-a-javascript-project-and-found-my-eclipse-outline/。
Snapshot from SuiteScript 2.0 RestLet. SuiteScript2.0 is integrated with RequireJS
此处的实际样本:
"use strict"; //Defines that JavaScript code should be executed in "strict mode
/**
*@NApiVersion 2.x
*@NScriptType Restlet
*/
define(
[
'N/record', 'N/error'
],
/**
* @param {record} record
*/
function(record, error)
{
/**
* @memberOf myNameSpace
*/
function doValidation(args, argNames, methodName)
{
for (var i = 0; i < args.length; i++)
{
if (!args[i] && args[i] !== 0)
{
throw error.create(
{
name : 'MISSING_REQ_ARG',
message : 'Missing a required argument: [' + argNames[i] + '] for method: ' + methodName
});
}
}
}
// Upsert a NetSuite record from request param
/**
* @memberOf myNameSpace
*/
function put(context)
{
doValidation(
[
context.recordtype, context.id
],
[
'recordtype', 'id'
], 'PUT');
var rec = record.load(
{
type : context.recordtype,
id : context.id
});
for ( var fldName in context)
if (context.hasOwnProperty(fldName))
{
if (fldName !== 'recordtype' && fldName !== 'id')
{
rec.setValue(fldName, context[fldName]);
}
}
rec.save();
return JSON.stringify(rec);
}
return (
{
post : post
});
});