Jedit in action: Console plugin (3)

终于到了最重要的一部分: Commando。Commando有点类似ultroedit里我们常用的配置命令,用来编译或者运行文件。不过Commando更为强大,因为它本质上说还是beanshell命令,所以可以调用jedit及其插件的api。commando1

上图就是我写的一个grails的commando,"Command”是一个选择grails命令的下拉菜单,"Command parameters”可以填入命令的参数。

这张图里面Commands里面显示的是最终会在Console里面运行的命令。commando2

下面来介绍一下这个commando的内容:

   1: <?xml version="1.0" ?>
   2:  
   3: <!DOCTYPE COMMANDO SYSTEM "commando.dtd">
   4:  
   5: <COMMANDO>
   6:     <UI>
   7:         <CAPTION LABEL="Commands">
   8:         <CHOICE LABEL="Command" VARNAME="command" DEFAULT="test-app">
   9:             <OPTION LABEL="create-domain-class" VALUE="create-domain-class"/>
  10:             <OPTION LABEL="create-controller" VALUE="create-controller"/>
  11:             <OPTION LABEL="generate-all" VALUE="generate-all"/>
  12:             <OPTION LABEL="run-app" VALUE="run-app"/>
  13:             <OPTION LABEL="test-app" VALUE="test-app"/>
  14:         </CHOICE>
  15:                 
  16:         <ENTRY LABEL="Command parameters" VARNAME="args" />
  17:         </CAPTION>
  18:     </UI>
  19:  
  20:     <COMMANDS>
  21:         <COMMAND SHELL="System" CONFIRM="FALSE">
  22:             changeToPvRoot(view);
  23:             buf = new StringBuffer("grails ");
  24:             buf.append(command);
  25:             if (args.length() > 0) buf.append(" ").append(args);
  26:             buf.toString();
  27:         </COMMAND>
  28:     </COMMANDS>
  29: </COMMANDO>

6-18行控制comando的显示部分,就是第一张图里的一个下拉菜单和一个文本框,20-28行控制最终运行的命令。

8-11是下拉菜单,16行是文本框。详细的说明在Console的help文件里面有。

21行:SHELL=”System“对应Console里面的System命令行,CONFIRM=”FALSE"就是运行之前不需要再有一个对话框确定。

22行:这个就是直接调用Console提供的api。这个命令我是在Console的源文件里面找到的一个beanshell文件,在Console的Beanshell命令行里也可以直接调用。这个命令要和Project Viewer插件配合,它的作用是直接跳到Project Viewer里当前项目的根目录。

23-26:用StringBuffer来构造最后在Console里运行的命令。其中command和args对应于UI部分的输入。

在编写了这个commando以后,要把它放在jedit的commando的文件夹里面,目录是$HOME/.jedit/console/commando,命名为grails.xml,然后需要点击Plugins->Console->regen dynamic menus来激活。然后就可以里Plugins->Console->Commands里找到grails了。点击就会出现图一的对话框,输入完确定,命令就会在console里面运行,并且结果也会显示在console里面。commando3

还有更牛的,就是这个commando已经被注册到jedit支持的快捷键里面。在Global Options->Shortcuts里面,Edit Shortcuts选择Plugin: Console – Commando Commands,就可以看到所有的commando,也包括我们刚加的grails。我给它的快捷键是F6,就可以在任何时候按F6来执行我的grails命令。是不是很方便呢?

commando4

Related posts:

  1. Jedit in action: Console plugin (2)
  2. Jedit in action: Console plugin (1)
This entry was posted in java, jedit, software and tagged , , . Bookmark the permalink.
blog comments powered by Disqus