Background
an important feature even in the first ROS format, this tag allows freely adding additional metadata with some already having built-in functionality. It is critical that support for the tag itself is added (and potentially sub-features like plugins, package marking, etc.)
Details
[x] auto-completion for the tag
[x] it is important to save and preserve ALL data in the tag, even when reformatting the file. This is important in the reformat file intention.
[x] in the tag, add auto-completion of basic annotations specified in the REP:
[x] Remove outside completions for tags (like depends)
[x] architecture_independent: autocomplete for empty tag
[x] architecture_independent: marks packages that do not have C/C++ code (sent to plugin extensions)
[x] build_type: marks the build type of the package. REP 140 available options are:
catkin (classic ROS), cmake (non ROS / special ROS), ament_cmake (ROS2), ament_python (python ROS2). These options should be in a .properties file.
[x] build_type also has an annotation of a weak warning if the build system is not one of the options specified.
[x] deprecated: marks the package as deprecated. Should open a multiline message in text (NOT HTML or anything special)
[x] deprecated makes it so that any package that depends on this one get a "deprecated" annotation on the dependency.
[x] message_generator takes a text argument that should be a language. Since there are so many languages ROS could support (from C++ to python to Java to Lisp to...), no autocompletion or annotations are done on the text inside (beside non-empty)
[x] metapackage: autocompletes for an empty tag.
[x] metapackage restricts all of its dependencies to \ and ONE \. Annotate otherwise.
[x] metapackage marks the package as a metapackage. only metapackages may depend on metapackages. If a non-meta package depends on a metapackage, mark it.
Feature: full support of the \ tag.
Background an important feature even in the first ROS format, this tag allows freely adding additional metadata with some already having built-in functionality. It is critical that support for the tag itself is added (and potentially sub-features like plugins, package marking, etc.)
Details