Eclipse EPIC Plug-in и автозаполнение / помощь с контентом на переданных сложных объектах? - PullRequest
2 голосов
/ 18 сентября 2011

Сообщество SO *,

Существует ли лучший стандарт кодирования о том, как последовательно получать помощь при автозаполнении / оказании помощи при работе с методами модуля Perl при передаче в метод.Например:

sub main {
   my $moduleObject = MyNameSpace::ModuleObject->new();
   processModuleObject($moduleObject);
}

sub processModuleObject {
  my $moduleObject = shift;
  $moduleObject->...    <- that is were I want context assist/auto-completion to work

}

Лучшая работа, чтобы заставить это работать, была следующая, которой я не доволен:

sub main {
   my $moduleObject = MyNameSpace::ModuleObject->new();
   processModuleObject($moduleObject);
}

sub processModuleObject {

  my $moduleObject = MyNameSpace::ModuleObject->new();
  $moduleObject = shift;
  $moduleObject->runLogic();

} 

Существуют ли какие-либо лучшие практики кодирования, о которых мы должны знать?

/ Томас

1 Ответ

0 голосов
/ 18 сентября 2011

Вы можете передать что-нибудь методу processModuleObject. В Perl нет строго типизированных аргументов и сигнатур методов или, по крайней мере, нет механизмов для их принудительного применения.

Как EPIC IDE может быть в состоянии выяснить, к какому типу относятся аргументы метода? Я не знаю.

Тем не менее, вы можете использовать Moose и дополнительный модуль расширения MooseX :: Declare, чтобы вы могли написать

method processModuleObject (MyNameSpace::ModuleObject $myobj) { ... }

но EPIC не распознает синтаксис Moose и объявления методов. Таким образом, вы потеряете Eclipse "контурный вид". Но вы получите максимум подробные ошибки времени выполнения, указывающие на ошибки несоответствия типов при передаче параметров.

ИМХО, было бы здорово, если бы кто-то расширил EPIC таким образом, сделав его "Moose-осведомленным".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...