Idea Plugin Dev-04-idea 插件开发实战之 markdown-toc 生成文件目录
2017年10月13日大约 1 分钟
markdown-toc
以前写过一个 java 项目,专门用于生成文件的目录。
现在学习 idea 插件开发,刚好可以用这个尝试。
开发内容
plugin.xml
com.github.com.houbb.markdown-toc-idea-plugin
Markdown-TOC
老马啸西风
most HTML tags may be used
]]>
com.intellij.modules.platform
我们定义 2 个 action。
markdownTocIn:在文件内右键。
markdownTocOut:idea project 视图,在文件上右键。
代码
package com.github.houbb.markdown.toc.idea.plugin.action;
import com.github.houbb.markdown.toc.core.impl.AtxMarkdownToc;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
import com.intellij.openapi.vfs.VirtualFile;
public class BasicMarkdownTocGenAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
// TODO: insert action logic here
Project project = e.getProject();
VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE);
if (file != null && !file.isDirectory()) {
String filePath = file.getPath();
// 使用 filePath 进行后续操作
try {
AtxMarkdownToc.newInstance().genTocFile(filePath);
} catch (Exception exception) {
//显示对话框并展示对应的信息
Messages.showInfoMessage("执行异常" + exception.getMessage(), "提示");
}
} else {
//显示对话框并展示对应的信息
Messages.showInfoMessage("必须选择一个 markdown 文件!", "提示");
}
}
}
非常的简单,我们获取当前文件的路径,然后直接调用以前的生成方法即可。
剩下的 2 个 action 直接继承这个基础类即可。
/**
* 文件内部右键
* @since 1.0.0
*/
public class FileInsideRightClickAction extends BasicMarkdownTocGenAction {
}
参考资料
贡献者
binbin.hou