2014-01-23 8 views
9

Ich versuche ein Plugin für JSDoc zu erstellen. Ich folge der Dokumentation (was ironischerweise fehlt) und ich bin mir nicht sicher, wie ich das machen soll.Wie generiert man JSDoc-Kommentare für Funktionen, wenn kein Kommentar existiert?

Mein Plugin ist richtig geladen, und ich versuche ein einfaches Beispiel. Hier ist mein Plugin (das lädt, weil ich einen Fehler aus, kann von dort jsdoc von Laufen zu stoppen):

visitNode: function(node, e, parser, currentSourceName) { 

    if(node.type === 109){ 
     if(!e.comment || e.comment ==="@undocumented"){ 

      var startComment = '/**', 
       endComment = '\n*/'; 
      var params = node.getParams(), 
       paramsComment = ''; 
      for(var i=0; i<params.length; i++){ 
       paramsComment += '\n* @param ' + params[i]; 
      } 

      e.comment = startComment + 
       paramsComment + 
       endComment; 
     } 
    } 

Bitte beachten Sie, dass node.type === 109 bis Token.FUNCTION äquivalent ist, die zur Verfügung stehen sollen wie in ihrem Beispiel here, aber Token ist im Plugin nicht definiert.

Wenn Sie von einer besseren Seite kennen, die erläutern, wie ein JSDoc Plugin zu schreiben, das wäre dann sehr viel zu schätzen ... dank

+0

Wie funktioniert Ihr Plugin nicht? – Louis

+0

Es schreibt nicht wirklich den Kommentar in die Codedatei oder die Dokumentation – Etai

Antwort

2

Ich hatte auch dieses Problem und es scheint seltsam, dass JSDoc nicht hat eine Art bereits gemachter Option dafür oder zumindest ein Plugin.

Wie auch immer, dieses Plugin hat mein Problem gelöst. Ich verwende JSDoc Version 3.4:

'use strict'; 
exports.handlers = { 

    symbolFound:function(e) { 
     if(e.astnode.type === "FunctionDeclaration") { 
      if((e.comment==="@undocumented")){ 
       e.comment = '/** undocumented */'; 
      } 
     } 
    } 
}; 
+0

Großer Zeiger! ['eventDumper'] (https://github.com/jsdoc3/jsdoc/blob/master/plugins/eventDumper.js) ist ein großartiges Beispiel-Plugin, das Sie überprüfen können, wenn Sie die ** jsdoc ** -Verarbeitungspipeline dort sehen möchten Die oben genannte Strategie ist eingebunden. Scheint so, als ob [das Hinzufügen von Kommentaren die beste Route ist] (https://stackoverflow.com/q/21285960/175679), um zu gehen - jsdoc ist nicht so robust wie [sphinx oder docfx] (https://docs.microsoft.com/en-us/aspnet/core/#lf-content=177014839:612203132) wenn der Code nicht zu Beginn kommentiert ist. – SliverNinja