{破事氵}也许,你可以在IDE里直接发送到PasteMe.cn

诶嘿,通过 PasteMe for Intellij IDE插件,你可以在 IDE 内直接将代码片段上传至PasteMe.cn 并自动复制Paste链接了

为什么要写这个插件

可能是放寒假太闲所以做一点微小的贡献

个人认为,类似 PasteMe.cn\ Ubuntu Paste这类文本片段分享网站,本质上是提供了与图床类似的服务,相比于展示端的代码高亮和剪贴板写入等复杂功能,生成Paste其实只需要一次PUT请求就可以完成,实际上PasteMe也确实提供了简洁的API可以在多种环境下调用。

Intellij中,通过官方的Github集成插件,可以将代码片段甚至编译报错信息生成Gist,整个Work-flow不需要离开IDE并自动调用浏览器打开Gist连接。于是我仿照Gist的思路,尝试将PasteMe集成到了Intellij中,并利用了IDE 语言推断和配置存储功能提升了体验。比[打开网页=>复制粘贴=>密码加密=>提交=>复制粘贴ID]的传统Work-flow不知道高到哪里去了,整个过程全部集成在IDE中,可谓是 Too Simple

如何使用

  1. 在插件的源代码中的Plugin.xml中可以声明插件的动作,以及注入的入口。PasteMe插件注入了ProjectViewPopMenu即左侧Project文件树的右键菜单,通过此入口获取文件全部内容上传,EditorPopupMenu即编辑器中的右键菜单,获取选中区域文本或全部文本上传,ConsoleEditorPopupMenu即编译运行结果区的Console右键菜单,获取程序输出并上传(不会只有我一个人给别人检查程序Bug的时候只能对着截图或者QQ聊天框里一堆格式杂乱还没有高亮的出错信息Debug吧不会吧不会吧)
  2. 插件通过调用IDE的PSI File相关接口来获取文件所属语言,并提交到PasteMe,以期在展示端获得更准确的高亮体验,同时你可以设置为在上传前自动格式化代码(一颗赛艇!
  3. 插件通过继承IntellijConfigurableState类,可以实现记录偏好设置,并在IDE设置中修改,目前可修改的包括 加密Paste的默认密码,上传前后自动执行的工作流等。(吼啊

截图

image-20210105143203218
image-20210104192142982

TODO

  • [ ] 自动插入文件名(难点在于插入的文件名必然应当以注释的形式存在,如何获取不同语言的注释符号呢?我说还是另请高明吧
  • [ ] Paste 下载功能
  • [ ] 配合PasteMe的用户系统
Edit with markdown