Artifact ID: | 404a2a191473cfa44a7a0370d5108dc0a7ab7530a519bc28d378b9664108c30e |
---|---|
Page Name: | internal-fields |
Date: | 2018-07-04 17:22:11 |
Original User: | mario |
Mimetype: | text/x-markdown |
Parent: | 917d557872a7fa96b1f6811ad74e463bd598e7f3671b3bad6bbb2827412dbd5f (diff) |
Next | 2cde645101165a0c164179bb98cf2d6956e0fb3d700e3bab298733f6d6b7ff3e |
Implicit/internal field names
When plugin meta data comments get extracted into a hashtable ($meta.*
), some common attributes might get prepoulated. Either implied from the filename, or from predefined defaults.
# id: basename
With e.g. the depends: field plugins can reference each other. And they typically just list basenames, not full paths. Because the point of PMD is to abstract filenames from plugin names.
# fn: src/plugin/featurename.rb
# id: featurename
Albeit one could use a literal # id:
override in scripts, it's probably best to avoid ambigious basenames. For the scope of one application API all plugin basenames should be unique.
# fn: .../src/plugin/filename.rb
When a script gets parsed, it's often necessary to retain its exact location. For brevity, I'd usually store this in an internal field named $meta.fn
# comment: …
… … … … … … …
The remainder of the topmost comment block (after all PMD key:value fields) is meant to contain a longer description. And for my implementations I usually keep it as $meta.comment
(albeit also used $meta.doc
in some extractors.)