From: <dal...@us...> - 2014-12-17 21:48:35
|
Revision: 23791 http://sourceforge.net/p/jedit/svn/23791 Author: daleanson Date: 2014-12-17 21:48:34 +0000 (Wed, 17 Dec 2014) Log Message: ----------- Updated docs, added action to generate files from an antlr grammar. Modified Paths: -------------- plugins/AntlrSideKick/trunk/AntlrSideKick.props plugins/AntlrSideKick/trunk/docs/antlr.html plugins/AntlrSideKick/trunk/src/sidekick/antlr4/AntlrSideKickPlugin.java Added Paths: ----------- plugins/AntlrSideKick/trunk/actions.xml plugins/AntlrSideKick/trunk/src/sidekick/antlr4/parser/SideKickPosition.java Modified: plugins/AntlrSideKick/trunk/AntlrSideKick.props =================================================================== --- plugins/AntlrSideKick/trunk/AntlrSideKick.props 2014-12-17 18:41:08 UTC (rev 23790) +++ plugins/AntlrSideKick/trunk/AntlrSideKick.props 2014-12-17 21:48:34 UTC (rev 23791) @@ -17,3 +17,7 @@ # set mode antlr4 for this sidekick sidekick.parser.antlr4.label=antlr4 mode.antlr4.sidekick.parser=antlr4 + +# menu +plugin.sidekick.antlr4.AntlrSideKickPlugin.menu=antlr4-generate-files +antlr4-generate-files.label=Generate files Added: plugins/AntlrSideKick/trunk/actions.xml =================================================================== --- plugins/AntlrSideKick/trunk/actions.xml (rev 0) +++ plugins/AntlrSideKick/trunk/actions.xml 2014-12-17 21:48:34 UTC (rev 23791) @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<!DOCTYPE ACTIONS SYSTEM "actions.dtd"> +<ACTIONS> + <ACTION NAME="antlr4-generate-files"> + <CODE> + sidekick.antlr4.AntlrSideKickPlugin.generateFiles(buffer); + </CODE> + </ACTION> +</ACTIONS> Modified: plugins/AntlrSideKick/trunk/docs/antlr.html =================================================================== --- plugins/AntlrSideKick/trunk/docs/antlr.html 2014-12-17 18:41:08 UTC (rev 23790) +++ plugins/AntlrSideKick/trunk/docs/antlr.html 2014-12-17 21:48:34 UTC (rev 23791) @@ -7,6 +7,9 @@ It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees.</p> <p>This plugin provides a SideKick to make working with ANTLR grammar files easier.</p> + <p>There is one action provided, "Generate files". If the current buffer contains an + Antlr 4 grammar file, executing this action will generate the Antlr lexer, parser, + etc, files into the same directory.</p> <h3>Change log:</h3> <ul> Modified: plugins/AntlrSideKick/trunk/src/sidekick/antlr4/AntlrSideKickPlugin.java =================================================================== --- plugins/AntlrSideKick/trunk/src/sidekick/antlr4/AntlrSideKickPlugin.java 2014-12-17 18:41:08 UTC (rev 23790) +++ plugins/AntlrSideKick/trunk/src/sidekick/antlr4/AntlrSideKickPlugin.java 2014-12-17 21:48:34 UTC (rev 23791) @@ -1,10 +1,9 @@ package sidekick.antlr4; +import org.gjt.sp.jedit.Buffer; import org.gjt.sp.jedit.EditPlugin; -// QUESTION: add an action to allow the user to generate files from the current grammar file? -// The antlr-4.4-complete.jar is all that is necessary, and it's a dependency of this plugin -// via the Antlr plugin. +import org.antlr.v4.Tool; public class AntlrSideKickPlugin extends EditPlugin { public static final String NAME = "sidekick.antlr4"; @@ -14,4 +13,12 @@ public void stop() { } + // Generate antlr files from the current file in the buffer. + public static void generateFiles(Buffer buffer) { + if ("antlr4".equals(buffer.getMode().getName())) { + String[] args = new String[]{buffer.getPath()}; + Tool antlr = new Tool(args); + antlr.processGrammarsOnCommandLine(); + } + } } \ No newline at end of file Added: plugins/AntlrSideKick/trunk/src/sidekick/antlr4/parser/SideKickPosition.java =================================================================== --- plugins/AntlrSideKick/trunk/src/sidekick/antlr4/parser/SideKickPosition.java (rev 0) +++ plugins/AntlrSideKick/trunk/src/sidekick/antlr4/parser/SideKickPosition.java 2014-12-17 21:48:34 UTC (rev 23791) @@ -0,0 +1,17 @@ +package sidekick.antlr4.parser; + +import javax.swing.text.Position; + +// a concrete implementation of Position +public class SideKickPosition implements Position { + + private int offset; + + public SideKickPosition(int offset) { + this.offset = offset; + } + + public int getOffset() { + return offset; + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |