【问题标题】:Basics of writing plugins for Jedit为 Jedit 编写插件的基础知识
【发布时间】:2017-03-09 20:02:06
【问题描述】:

谁能指导我学习为 Jedit 编写插件的教程?我有一个使用 Jedit 作为 SAS 编辑器的梦想。目前,它会进行语法高亮显示,但我认为通过更好地充实这些想法,它已经或可以做得更好。

几个问题:

  1. 可以在 Jedit 中启用 Tab 补全吗?
  2. 您能否指定以特定语法开头和结尾的“环境”? (例如,“保持”这个词在 data xxx;run; 之间有意义,但在 proc sort data=xxx;run; 之间没有意义,因此突出显示它会对没有经验的编码人员产生反作用。
  3. 您能否将变量存储在工作场所并从下拉菜单中引用它们(例如数据集中的变量名称)
  4. 您可以从 shell/终端执行代码并将 .log 文件返回到 Jedit 消息窗口吗?

【问题讨论】:

标签: sas jedit


【解决方案1】:
  1. 您说的是 Microsoft 的 Intellisense 还是自动完成功能?如果是这样,穷人对自动完成的近似方法是在输入部分单词后使用键盘快捷键ctrl+b。它将根据所有打开的缓冲区中的所有单词完成单词。 See this questions for more on autocomplete.

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

  3. 不完全确定您想要什么,但 jedit 确实会跟踪您从文本中获取的一堆最新副本。 Emacs 将其称为“kill ring”。对于我的 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);
    

顺便说一句,宏在 jedit 中非常强大。您可以使用 Macros->Record Macro... 记录您在 jedit 中所做的事情,它会生成等效的脚本。

【讨论】:

  • 1.我最喜欢的自动完成是 Unix 术语/bash。按 T​​ab 显示可用选项的列表。 ctl+space 将是一个合适的选择。这些选项必须根据环境而改变。如果我输入proc freq data=xxx;,那么var 是一个选项,直到我输入run;。 3. 在 SAS 中编辑项目时,最好了解映射了哪些库以及每个库中存在哪些数据集。如果我预处理 SAS 代码以打印来自这些目录的输出并将该信息通过管道传输到 jEdit,那么 jEdit 就会知道那里有什么。想象一下调用“ls > dir.txt”并将 dir.txt 读入 jEdit
  • 1. See this question 用于 jedit 中的自动完成功能。我敢打赌,Java 语言自动完成插件之一是最好的。 SideKick 似乎是要使用的自动完成框架。我认为您可以在快捷方式选项中将快捷方式设置为您喜欢的任何内容(包括 ctrl+space)。无论如何,祝你好运!
猜你喜欢
  • 1970-01-01
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2018-05-25
  • 2014-11-28
  • 2014-02-14
相关资源
最近更新 更多