Как искать методы в Scaladoc, глобально? - PullRequest
19 голосов
/ 15 июля 2011

Есть ли возможность, что я могу искать метод в классе, признаке или объекте через scala doc, глобально? Пример: у меня есть имя метода, и я не знаю, к какому классу он принадлежит, поэтому я могу напечатать его в каком-то поиске по скалярному протоколу, и он покажет мне классы, содержащие метод с данным именем. (PS: я бы добавил тег скаладок, но, видимо, я недостойен ...)

Ответы [ 3 ]

10 голосов
/ 15 июля 2011

colladoc

Инструмент colladoc имеет более полезный интерфейс поиска для скалярных документов, чем стандартный инструмент скаладок.

Вы можете ограничить поиск именами методов, поставив перед строкой поиска префикс «def», как в «неявном def».Если щелкнуть увеличительное стекло рядом с окном поиска с пустой строкой поиска, вы получите следующий удобный список примеров запросов:

  • any ищет все, чтоимеет слово any в своем названии, определении или комментарии
  • any_ ищет все, что начинается с any
  • //_any ищетвсе комментарии, содержащие слово, которое заканчивается на any
  • class AnyRef поиск всех классов с именем AnyRef
  • trait _ поиск всех признаков
  • object _ ищет все объекты
  • class A_ || class B_ ищет все классы, начинающиеся с A или B
  • class _ extends _ with _ ищет все классы, расширяющие класс и реализующие черту
  • var _: Int ищет все значения или переменные типа Int, переменные отображаются перед значениями
  • def toString ищет все методы с именем toString
  • def toString : String ищетвсе методы с именем toString и возвращаемым типом String
  • def _(_) : Boolean ищет все методы с одним аргументом и returnType Boolean
  • def _(Int, _) ищет все методы с аргументами, первый тип имеет тип Int
  • def _(_, *) поискдля всех методов с одним или несколькими аргументами
  • def _(Iterable[_]):Int ищет все методы, которые принимают Iterable и возвращают Int
  • (Iterable[_]) => Int, эквивалентный приведенному выше, лямбда-синтаксис также можно использовать для поискадля методов.
  • => (_, _) ищет все методы, которые возвращают кортеж с двумя элементами.
  • def _((_) => _) ищет все методы, один из которых в качестве первого параметра является методом, который принимает и возвращает любойvalue.

К сожалению, результаты поиска colladoc могут быть пугающими.Если член существует во многих чертах / классах из-за наследования (например, метод sum в API коллекций), все классы перечислены в результатах.

Алфавитный указатель scaladoc

В самом скалярном поиске такого поиска нет, но есть алфавитный указатель, содержащий элементы класса / объекта / признака.Просто нажмите на одну из букв под строкой поиска в верхнем левом углу, и вы увидите список, содержащий классы, объекты, черты и членов , начинающиеся с этой буквы (или символов, если нажатьпо ссылке "#").Затем вы можете использовать функцию браузера find для поиска интересующего вас участника.

10 голосов
/ 15 июля 2011

Я не думаю, что есть общий встроенный метод. Так что, если скаладок онлайн, я использую моего друга Google. Например, для поиска метода, называемого left в scala API, я использую запрос:

"def left" site:http://www.scala-lang.org/api/current/

Если он у меня на жестком диске, я использую grep.

6 голосов
/ 15 июля 2011

Я использую алфавитный указатель в левом верхнем углу под окном поиска. Было бы неплохо, если бы была правильная функциональность поиска.

Было бы также неплохо, если бы документы были доступны в формате справки Windows , как и для Java , что на намного более удобно, чем в HTML-javadoc, и позволяет искать методы с почти нулевой задержкой.

...