为Jedit编写插件的基础知识

时间:2013-01-18 18:15:41

标签: sas jedit

有人可以指导我为Jedit编写插件的教程吗?我有一个使用Jedit作为SAS编辑的麻烦。目前,它会进行语法突出显示,但我觉得通过更好地充实这些想法可以或者可以做得更好。

几个问题:

  1. 您可以在Jedit中启用标签完成吗?
  2. 您能指定以某种语法开头和结尾的“环境”吗? (例如,“保持”一词在行data xxx;run;之间有意义,但在proc sort data=xxx;run;之间没有意义所以突出它会对没经验的人有反指导意义编码器。
  3. 您可以将变量存储在工作场所并从下拉菜单中引用它们(例如数据集中的变量名称)
  4. 你能从shell / terminal和pipe .log文件执行代码回到Jedit消息窗口吗?

1 个答案:

答案 0 :(得分:1)

  1. 您是在谈论微软的Intellisense还是自动完成?如果是这样,穷人对自动完成的近似是在键入部分单词后使用键盘快捷键 ctrl + b 。它将根据所有打开的缓冲区中的所有单词完成单词。 See this questions for more on autocomplete.

  2. 在语法高亮显示中,您可以为不同的代码块创建委托语法,以便根据不同的规则突出显示。 grep在jedit的mode目录中为“delegate”。

  3. 不完全确定你想要什么,但是jedit会从文本中跟踪一堆最新的副本。 Emacs称之为“杀戮戒指”。对于我的jedit设置,我Paste Previous...绑定到 ctrl + e ctrl + v 。我相信这是默认的快捷键绑定。这将显示您最近的~20个文本块副本,您可以选择要使用的副本文本块。

  4. 是的,您可以在shell中执行任务并将它们重新导入jedit。 See this question.以下是我如何bk edit并重新加载缓冲区。它不会从shell获得输出,但它会执行shell命令:

    import javax.swing.JOptionPane;
    import java.io.File;
    File f = new File(buffer.getPath());
    String SCCS_path = f.getParent()+"/SCCS";
    String bk_path =  "/usr/local/bin/bk";
    if ( !new File(SCCS_path).exists()) {
        bk_path = "/usr/bin/bk";
    }
    Runtime.getRuntime().exec(
        bk_path+ " edit "+
        buffer.getPath());
    Thread.currentThread().sleep(2000);
    buffer.reload(view);
    
  5. 顺便说一下,宏在jedit中非常强大。您可以使用 - > 记录宏... 记录您在jedit中所做的事情,它将生成等效的脚本。