2015-01-12 23 views
9

Tôi có một mã lớn văn bản trong vòng define(...) như là định dạng sau -Eclipse - hỗ trợ xem phác thảo với require.js xác định (...)

define(['angular'], function(angular) { 
     function foo() { 
      console.log("Hi") ; 
     } 
     function foo2() { 
      console.log("Hi") ; 
     } 
     function foo3() { 
      console.log("Hi") ; 
     } 
}) 

Eclipse là mất tích tất cả các outline view đầu ra cho định dạng này, có nghĩa là - không hiển thị gì cả.

Làm cách nào để hỗ trợ định dạng này, có nghĩa là - chuyển hướng tôi đến tất cả khai báo hàm và biến?

đây xem phác thảo hiện tại của tôi là gắn liền -

enter image description here

+0

chi tiết vui lòng những gì bạn muốn mong đợi tại https://github.com/angelozerr/tern.java/issues/289 – Angelo

Trả lời

8

JSDT Plugins đó là mặc định Eclipse plugin cho JavaScript không hỗ trợ RequireJS. Tôi khuyên bạn nên thử tern.java (Tôi là tác giả của tern.java), cung cấp một số support for RequireJS. Bạn sẽ được hưởng lợi với việc hoàn thành RequireJS, siêu liên kết, di chuột, xác thực.

Tôi đề nghị bạn rằng bạn install AngularJS Eclipse 0.8.0 (không được phát hành) dựa trên tern.java (có vẻ như bạn đang sử dụng góc cạnh). Bạn sẽ có một lần nữa Phác thảo vấn đề (tern.java không khắc phục điều đó), nhưng đừng ngần ngại create issues với ý tưởng của bạn để cải thiện tern.java.

1

Bạn cũng có thể thử plugin Aptana Studio. Plugin của họ cung cấp rất nhiều công cụ phát triển web front-end tốt đẹp.

1

Cố gắng đưa JsDoc "@memberOf" trước khi các chức năng bên trong.
Xem ví dụ bên dưới. Bạn có thể thấy chức năng "doValidation" và "put" ở chế độ xem phác thảo trong lớp "MyNameSpace".

Để biết thêm thông tin về JsDoc, hãy xem trang này 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

mẫu thực tế ở đây:

"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 
     }); 
}); 
Các vấn đề liên quan