前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >让live-templet活起来

让live-templet活起来

原创
作者头像
黄希彤
修改于 2022-09-02 07:17:39
修改于 2022-09-02 07:17:39
54400
代码可运行
举报
文章被收录于专栏:黄希彤的专栏黄希彤的专栏
运行总次数:0
代码可运行

众所周知Jetbrains的代码片段live-templet其实并不怎么live,编写完了以后就一直放在那儿,直到下次更新它。

虽然官方说可以用“Add Read-Only source”功能让live-templet与远程的只读源同步,实际上只读源的功能一直都不稳定,官方论坛吐槽也很多,然后file-templet和live-templet的远程同步功能似乎也并不可用。

所以如果需要一个可以更服务器同步,团队内组织内共享的活的live-templet库,要么去买一些收费的插件比如cacher,要么就要自己通过Completion Contributor来模拟lve-templet。扒拉了一下文档,简单来说大概要这么做:

1 到github上下载插件模板工程到本地,用IDEA打开。readme里面要求安装的plugins也都安装上。

2 在src/main/kotlin下面创建自己的package和kotlin class,比如 com.github.myname.myplugin.completion.contributors 和 MyCompletionContributor.kt

3 到 src/main/resources/META-INF/plugin.xml 里的extensions里面添加completion.contributor段,把上一步的class注册到IDE里面,比如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<completion.contributor language="any" implementationClass="com.github.myname.myplugin.completion.contributors.MyCompletionContributor"></completion.contributor>

4 在MyCompletionContributor里面override 掉 fillCompletionVariants 方法,大概像这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.github.myname.myplugin.completion.contributors
import com.intellij.codeInsight.completion.*
import com.intellij.codeInsight.lookup.LookupElementBuilder

open class MyCompletionContributor() : CompletionContributor() {
    override fun fillCompletionVariants(parameters: CompletionParameters, result: CompletionResultSet) {
        println(parameters.editor.document.text)
        result.addElement(LookupElementBuilder.create("random suggestion1 " + Math.random().toString()))
        result.addElement(LookupElementBuilder.create("random suggestion2 " + Math.random().toString()))
        result.addElement(LookupElementBuilder.create("random suggestion3 " + Math.random().toString()))
        result.addLookupAdvertisement("只是一个测试而已")
    }
}

5 拉下 help 菜单搜索 gradle,打开gradle窗口,选择 Run Plugin

新开一个文件验证一下,已经可以实时动态生成随机推荐了。

在这个功能的基础上做了一个IDEA插件,可以按需生成推荐代码模板:

https://snippets.sou.ac.cn/plugin/idea_plugin.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DAY6-学习R包
用户10663401
2023/07/20
3330
DAY6- R包的使用
用户11039705
2024/03/28
2110
Day6:学习R包
用户10859122
2023/12/03
2180
Day6-R包
今天的内容在我刚看到的时候,觉得很难,看不懂每一步代码的意思,不知道是如何得到花花老师的结果的,但是在自己一步一步按照教程来进行操作,仔细比对前后的变化的时候,我对dplry包的使用有了更清晰的认识,这一部分内容需要自己多多练习,才能体会其中的含义。
用户11009106
2024/03/10
1630
Day6 学习R包(今天依旧是干货满满但是要注重理解)
海雀
2024/03/09
1510
Day 6_学习R包- CG
在我练习select()时,想选择刚新增的列,发现报错。然后发现运行mutate(test, new = Sepal.Length*Sepal.Width)后,查看test后发现test本身没有变。
Crazy_George
2024/03/28
1840
DAY6-学习R包
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
用户11039964
2024/03/27
1460
常用R包-dplyr
dplyr是一个在R语言中非常流行的数据处理包,它提供了许多功能强大且易于使用的函数,包括 select、 filter、mutate、arrange和summarize 等。这些功能使得dplyr成为数据清洗、处理和分析的首选包。
用户11076492
2024/04/18
6440
Day6——R包的学习
菜单栏-Tools-Packages-Primary CRAN repository-选择国内镜像
掩扉先生
2023/10/25
2320
学习小组day6笔记-R包
all_of(): Matches variable names in a character vector. All names must be present, otherwise an out-of-bounds error is thrown.
清南
2023/04/13
4070
生信星球学习小组Day6-R包学习 Jerry
(1)在Rstudio程序设置中设置,可以用options()$repos来检验,但有时候还是不能成功,也不能下载Bioconductor的包
jerry早点睡
2023/08/12
2770
Day4-R包学习
将 CRAN 镜像地址设置为了清华大学的镜像站点。这样,在使用 R 语言安装或更新包时,系统会优先从清华大学的镜像站点下载,从而加快下载速度
昆兰
2024/05/10
1540
Day-6 香波🐟
6.简单合并:在相当于base包里的cbind()函数和rbind()函数;注意,bind_rows()函数需要两个表格列数相同,而bind_cols()函数则需要两个数据框有相同的行数
波小囡
2023/12/02
2240
Day-6 香波🐟
Day6生信入门—R包
为了保证可以自定义CRAN和Bioconductor的下载镜像,只需要运行这两行代码即可:
用户10776122
2023/10/07
6201
day6-学习R包
注意,bind_rows()函数需要两个表格列数相同,bind_cols()函数需要两个数据框有相同的行数
于是没有洗头
2024/10/27
1460
day6-学习R包
Day6——R包
用户10859034
2023/12/03
2960
生信学习小组day6--大姚
上述一串代码意思是新增一列列名为“new”、数值是Sepal.Length * Sepal.Width的列
用户10340059
2023/02/11
9150
day6-白雪
在这个过程中你可能会发现问题,例如下次在进到rstudio的话,查看镜像,又不在了,怎么办呢
用户10300557
2023/01/15
9880
宏宏的学习笔记Day6 学习R包
mutate(test, new = Sepal.Length * Sepal.Width)
咕咚咕叽
2024/04/19
1810
学习小组笔记Day06-RUI
教程:https://mp.weixin.qq.com/s/XvKb5FjAGM6gYsxTw3tcWw
RUI GU
2023/02/11
5270
相关推荐
DAY6-学习R包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验