2015-01-12 8 views
9

mam duży kod piśmie w ciągu define(...) w następującym formacie -Eclipse - wspieranie widok konspektu require.js define (...)

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

zaćmienie brakuje cały wyjście outline view dla tego formatu, oznacza - nic nie wyświetla.

Jak sprawić, by ten format był wspierany, znaczy - skierować mnie do wszystkich deklaracji funkcji i zmiennych?

Oto mój obecny widok konspektu jest załączony -

enter image description here

+0

Proszę szczegółowo co chcesz oczekiwać na https://github.com/angelozerr/tern.java/issues/289 – Angelo

Odpowiedz

8

JSDT Wtyczki który jest domyślnym dla wtyczek Eclipse JavaScript nie obsługuje RequireJS. Proponuję ci spróbować tern.java (jestem autorem tern.java), który daje support for RequireJS. Zyskasz na ukończeniu RequireJS, hiperłączu, najechaniu kursorem, sprawdzeniu poprawności.

Sugeruję, że jesteś install AngularJS Eclipse 0.8.0 (nie wydany), który jest oparty na tern.java (ponieważ wydaje się, że używasz kątowego). Będziesz mieć ponownie problem z Outline (tern.java tego nie naprawi), ale nie wahaj się przed create issues z twoim pomysłem na ulepszenie tern.java.

1

Możesz również wypróbować wtyczkę Aptana Studio. Ich wtyczka oferuje wiele ciekawych narzędzi do projektowania stron internetowych.

1

spróbować umieścić JSDoc „@memberOf” przed funkcji wewnętrznej.
Zobacz przykład poniżej. Możesz zobaczyć funkcję "doValidation" i "put" w widoku konspektu w klasie "MyNameSpace".

Aby uzyskać więcej informacji o JsDoc, sprawdź to 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

Rzeczywista próbka tutaj:

"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 
     }); 
});