EAG - VS Code Language Extension for Extended Affix Grammar SpecificationsThis is the VS Code language extension "epsilon-eag" for the grammar specifcation language of Epsilon/Gamma Extended Affix Grammars. The compiler generator processing these specifications was originally developed under the name Epsilon in Oberon-2 and later migrated to D. Afterwards the development was continued in the Gamma project. The language server has been developed using the Xtext language framework to realize name navigation, auto-completion and cross reference resolution. It is backed by the real compiler generator (which performs deeper semantic checks and DLang code generation on file saving). The Gamma compiler generator is embedded into the VS code extension. If DMD is installed, the extension automatically triggers the compilation of the generated compiler sources. Syntax highlighting support has been developed using the syntax hightlighting "grammar" online editor Iro capable to issue "grammars" for Textmate, Atom, Sublime and others. For details see Chris Ainsley's article about it. In case of Textmate, Iro creates .plist files. As it is more convinient and more common to use Textmate grammars in JSON format, the .plist file has been transformed using the service http://json2plist.sinaapp.com/. The Iro file for syntax hightlighting definitions may be found at Epsilon.iro. FeaturesCurrrently the following features are supported:
RequirementsRequires Java 8 or Java 11 to run the language server. Does not run on Java 17 (Xtext restriction). It is recommended to install DMD D-Lang compiler (currently in version 2.103.1) for utilizing the feature of automatically compiling the target language compiler. Extension SettingsSee VS code settings [Ctr+,], look up for 'eag'. Known IssuesThe error positions of the generated target language compilers are not accurate under circumstances. See [Gamma issue #6](https://github.com/linkrope/gamma/issues/6). Release NotesSee CHANGELOG |