Helping EPIC guess types tip
gord wrote on Mon Nov 10 14:41:14 CET 2008:
I have found that if you have a bless reference coming in to a sub the following comment will help EPIC guess the type. # Get the parameter and tell EPIC the type # my $obj = shift; # $obj = OurProduct::MyClass:: $obj->[Ctrl-Space here will bring the correct methods up for the MyClass type] I do not know if this is a feature or just a side-effect of the implementation that already works to pick up the type from my $obj = Class::new() but I thought I would share it - perhaps also in the hope that it does not go away. Any other such tips? (e.g. I am just about to look at customising perldoc) Gordon...
jploski wrote on Mon Nov 10 18:43:20 CET 2008:
This is a side effect of the implementation. It has been in EPIC for years
now, so on that basis you may assume it won't go away (no guarantees though).
Regarding perldoc, I agree that it would be nice to have a convention to
aid EPIC (and programmers) in type recognition, but I am unaware of anything
that one could call an established standard. This is perhaps due to the
general philosophy of perldoc as a free-form, between-the-lines, reader-friendly
description rather than a semi-formal tool-friendly specification.
Personally, I don't use perldoc, but instead rely on Javadoc-like syntax
conventions, e.g.
# Find the birth date for a given person
#
# @param name name of a person
# @param id (optional) person's id
# @return birth date in format yyyy-mm-dd
sub get_birthday
{
my $name = shift;
my $id = shift;
...
return $birthday;
}
This convention obviously contains no type information, but it could be
inserted in front of the parameter's name after @param, for example. Then
it could be picked up by EPIC (other features which can use such description
is hover-on documentation and parameter completion). However, an additional
problem is hash-style parameter passing (where the keys of a hash are the
actual items that need documenting), which of course can be done in two
ways ({ param => value } or just param => value) and mixed with normal positional
parameters.
Of course the downside of such Javadoc-like conventions is that the standard
perldoc tool no longer applies.
Perl 6 type annotations could also become a possible basis, but who knows
when Perl 6 will be released and widely available.
If you come up with a really good set of conventions, I encourage you to
write them up (maybe first checking around the web what other people have
invented), and the specification could be implemented in EPIC some day.
Note: The above is an archived snapshot of a forum thread. Use the original thread at sf.net to post comments.