本文的目的是记录操作点和对应的API,这些信息淹没在官方浩瀚的文档中,真心不好找,记录下来,以备不时之需。
选中项目中的某个文件或文件夹(包),获取文件信息,并做进一步处理,如为某个包下生成某种类型的代码。
- 为constant包下生成符合架构开发规范的常量类,如FixDict。如果选中的包不是code结尾的,就不生成代码(避免常量类放置到错误的包中);
- 选中某一个实体类(如model包下,类名称以Entity结尾),为其生成工作流骨架代码。
1. 配置信息
请在plugin.xml文件中添加如下信息,要点是group-id:
<actions>
<action id="ProjectPopupMenuAction" class="net.xprogrammer.plugin.xtools.action.FileInfoAction"
text="xFileInfo" description="获取文件信息,为生成代码做准备。">
<add-to-group group-id="ProjectViewPopupMenu" anchor="first"/>
</action>
</actions>
2. 示例代码
重点是CommonDataKeys.VIRTUAL_FILE.getData(e.getDataContext()):
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.notification.Notifications;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
public class FileInfoAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
final VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(e.getDataContext());
String fileName = file.getName();
Notifications.Bus.notify(
new Notification("xtools", "文件信息", fileName, NotificationType.INFORMATION)
);
}
}
3. 效果展示
显示包名的信息(test)和文件名(Main.java)信息:
文件信息--END--
网友评论