You are here

YANG Editor Plugin for Eclipse

Printer-friendly versionSend by emailPDF version

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.

System Requirements:

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.

Installation Instructions:

The plug in can not be installed either through the Eclipse Install New Software dialog or manually.

Install New Software Method:

  1. Open the Install New Software dialog from the Eclipse Help menu item:
  2. Select the Add... button and enter the following in the Add Repository dialog:

Name:       BCSW - Eclipse Plugins

Manual Installation:

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.

Revision History:

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 website's plugins directory.  For example, version 1.0.2 is available at Revisions will be based on the common major.minor.revision style of numbering.



Revision History
1.0.3 Beta 1 Release.  New features include
  • Better keyword and built-in type detection.  Identifiers that have keywords as part of their name, such as my-list,  are no longer incorrectly colored by the keyword scanner.
  • User customizable syntax coloring.  This will allow better viewing on Eclipse IDE's that have darker background themes installed.
  • User customizable tab support (tab vs spaces).  Block indention/indent reduction is also supported
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.

Known Issues:

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.

Version 1.0.3

  • No reported issues at this time.

Version 1.0.2

  • (Fixed in 1.0.3) Colors are hardcoded for strings, keywords, and built-in types. This can conflict with the background color for some users. Plug-in needs to work better with the eclipse theme that is currently in place. This will be fixed in the next release.

Development Roadmap:

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.



Feature Roadmap
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
 - complex
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.