YANG is defined in the IETF RFC 6020 and is a data modeling language that is designed to model configuration and state data for network elements. It is starting to become a widely accepted standard and it is my hope this plugin for the Eclipse IDE will help others in their development, deployment, and maintenance of YANG files.
Eclipse Kepler or Luna releases or later.
Note: I have received several requests recently (Jan 2015) about Juno support and I hope to investigate the ability to support that release as well.
The plug in can not be installed either through the Eclipse Install New Software dialog or manually.
Name: BCSW - Eclipse Plugins
Download the latest revision (see Revision History below) and install the jar file in your version of Eclipse's plugin directory. Restart eclipse and the plugin should be installed. In some cases, you may need to restart Eclipse with the -clean command option.
Below is a revision history of YANG Editor plugins listed in newest release first. All files are available as jar files with the filename yang-editor_<version>.jar from the bcsw.net website's plugins directory. For example, version 1.0.2 is available at http://bcsw.net/plugins/yang-editor_1.0.2.jar. Revisions will be based on the common major.minor.revision style of numbering.
Beta 1 Release. New features include
|1.0.2||Alpha Release. This version supports comment, keyword, and builtin type source document coloring. The colors are currently hardcoded and will be integrated better with eclipse theme coloring and the preference dialog in the next release.|
Below is a list of known issues. Currently I am keeping them manually and will put into bug tracking system in the near future. Once a issue has been corrected and released, I will put a release version where the fix can be found in the error description.
Here is a rough estimate in approximate priority for features that I am hoping to add the Yang Editor PlugIn. As new features and bug fixes occur, I will publish the newer versions to my website and these should become available whenever you manually (or automatically) request updates in Eclipse ( Help --> Check for Updates...) Each feature below will be release with the next greater minor or major release number as appropriate.
If there is a specific feature that you wish was available sooner, or that you think I may have missed, please let me know by sending me email.
|External build command||Add a build command with various arguments to allow a user to compile a specific yang file. Error output will be to a build console but intelligent parsing/links to source will not be available|
|Build error/warning parsing||Add error/warning symbols to YANG source and allow for navigation from console/error tabs to line of source|
|Tooltips / hover help||Add tooltip help for yang keywords and builtIn types.|
|Simple Substatement Validation||Improve the internal document partitioning scheme and validate whether or not a specific substatement is available for a given keyword / builtIn type. Some simple content assist at this time could be useful|
|Outlining and code folding||Add an outline tab based on document partitioning and allow user to do code folding. Make what can be folded configurable through eclipse preferences tab.|
|Import / Include by Revision - simple||Allow user to navigate to included/imported modules.|
Import / Include by Revision
|Extend parsing and derived type determination/error checking to include imported modules. Allow for navigation from a user derived type back to original source if found|
|Constraint checking of default values||Check/validate restrictions provided by user, or implied by type, to the default values provided by the user.|
|Error marking||Implement any additional error marking and content assist needed to support import/includes.|
|Dig into complex keywords/types||Look into some of the more complex features supported by Yang and do my best to make the editor smarter with respect to handling them and more useful to users. These are the primarily related to the 'must' and 'when' substatements as well as more complex builtin types (unions, bits, and enumerations)|
|Formatting support||Provide some user modifiable formatting support.|
|Templates||New file templates (define a default that user can customize)|
|Post Luna Changes||As the next version of Eclipse beyond Luna becomes availailable, provide any fixes or enhancements need to work properly in that environment|
|Juno Support||Several people have requested support of the plugin for the Juno release. Currently the plugin requires version 3.9.2 of the org.eclipse.ui.ide package. After comparison of what is supported in Juno (along with any other package deficiencies), I will explicitly state whether or not Juno will be supported by the plugin.|