Почему статические методы не сортируются правильно в JSDoc и есть ли исправление? - PullRequest
0 голосов
/ 24 октября 2018

Несмотря на то, что я новичок в JSDoc, я получаю 95% от того, что хочу, так что не слишком потертый.Однако у меня есть реальная проблема: мои методы класса static не сортируются по алфавиту в выводе HTML.Это модуль CommonJS для использования в NodeJS.

Да, я использую файл конфигурации, и да, у меня включена сортировка, и да, я доказал, что сортировка равна делает что-то :

// jsdoc.config.js
'use strict';
module.exports = {
    source: {
      include: ['src/delme.js', 'README.md']
    },
    sourceType: 'module',
    plugins: ['plugins/markdown'],
    opts: {
      encoding: 'utf8',
      destination: 'docs',
      recurse: false,
      sort: true
    }
};

// module.js
/**
 * This CommonJS module exposes a main Account class 
 * @module AccountModule
 * @see module:AccountModule
 */

/**
 * @memberof module:AccountModule
 */
class Account {

  /** should be the third method, but its actually the fourth */
  ccc() {}

  /** should be the second method, but its actually the third */
  bbb() {}

  /**
   * should be the first method, but its actually the second.
   * CHANGE THIS METHOD TO 'STATIC' AND IT GOES TO THE TOP OF THE ORDER
   */
  aaa() {}

  /** should be the fourth method, BUT IT IS FIRST!! */
  static async exists() {}

}

module.exports = {Account};

Я говорю, что сортировка работает , потому что я намеренно изменил методы в коде, но все же сортирует правильно в документах HTML КРОМЕ для метода exists.К сожалению, метод exists сортируется в верхней части списка вместо aaa.Приведенный выше код создает порядок в документах HTML exists, aaa, bbb, ccc.Таким образом, пока сортировка выполняет что-то , это еще не на 100% правильно.

Теперь очевидно, что есть два различия между методом exists и другими тремя методами.Метод exists объявляется как async и static.Поэтому я применил метод проб и ошибок, чтобы посмотреть, смогу ли я получить aaa в верхней части списка и обнаружил, что объявление async ничего не делает.Тем не менее, объявление static сделало.Если я добавлю static к классу aaa, порядок станет aaa, exists, bbb, ccc.

Так что мой вопрос двоякий: 1) может кто-то объяснить, почемуstatic методы сортируются по-разному, и 2) есть ли способ получить нужное мне поведение, то есть отсортировать все методы по их именам без учета каких-либо асинхронных или статических объявлений? Спасибо, как всегда!

...