Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s安装redis主从版
在 K8s 中,使用 helm 部署 redis 主从模式,一主可以有多从,可指定任意数量的从节点,扩容缩容都很方便。
summerking
2022/10/27
1.8K0
helm 构建 chart
如果我们想要在 Kubernetes 集群中部署两个副本的 Ghost,可以直接应用下面的资源清单文件即可:
看、未来
2022/05/20
2.1K0
helm 构建 chart
Apache Apisix初体验
Apache APISIX 是一个基于 OpenResty 和 Etcd 实现的动态、实时、高性能的 API 网关,目前已经是 Apache 的顶级项目。提供了丰富的流量管理功能,如负载均衡、动态路由、动态 upstream、A/B测试、金丝雀发布、限速、熔断、防御恶意攻击、认证、监控指标、服务可观测性、服务治理等。可以使用 APISIX 来处理传统的南北流量以及服务之间的东西向流量。
mikelLam
2022/10/31
1.1K0
Apache Apisix初体验
【K8S专栏】Kubernetes应用访问管理
在Kubernetes中,提供了Service和Ingress两种对象来实现应用间访问或外部对集群应用访问,这两种对象在实际的工作中会时长使用,非常重要的对象。
没有故事的陈师傅
2022/12/06
1.7K0
【K8S专栏】Kubernetes应用访问管理
Kubernetes生产架构详解
注意 本文,只是笔者针对Kubernetes生产环境运行的一些关于架构设计和实现方案的总结,内容很粗糙,后续会不断完善。
kubernetes中文社区
2019/06/24
1.4K0
Kubernetes生产架构详解
k8s实践(12)--K8s service服务详解
Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结束。 通过 ReplicationController 能够动态地创建和销毁 Pod(例如,需要进行扩缩容,或者执行)。 每个 滚动升级 Pod 都会获取它自己的 IP 地址,即使这些 IP 地址不总是稳定可依赖的。 这会导致一个问题:在 Kubernetes 集群中,如果一组 Pod(称为 backend)为其它 Pod (称为 frontend)提供服务,那么那些 frontend 该如何发现,并连接到这组 Pod 中的哪些 backend 呢?
黄规速
2022/04/14
9.5K0
k8s实践(12)--K8s service服务详解
后Kubernetes时代的微服务
听说过服务网格并试用过Istio的人可能都会有以下5个疑问。 (1)为什么Istio 要绑定Kubernetes呢? (2)Kubernetes和服务网格分别在云原生中扮演什么角色? (3)Istio扩展了Kubernetes的哪些方面?解决了哪些问题? (4)Kubernetes、xDS协议(Envoy、MOSN等)与Istio之间是什么关系? (5)到底该不该使用Service Mesh? 本文将带读者梳理清楚 Kubernetes、xDS协议与Istio服务网格之间的内在联系。此外,本文还将介绍Kub
博文视点Broadview
2022/07/12
8610
后Kubernetes时代的微服务
【K8s】Kubernetes 服务发现之 Ingress
Ingress 是 Kubernetes 提供的一种服务发现机制,主要作用是为集群外部访问集群内部服务提供访问入口,通过制定 Ingress 策略管理 HTTP 路由,将集群外部的访问请求反向代理到集群内部不同 Service 对应的 Endpoint(即 Pod)上。
行者Sun
2024/09/02
2850
【K8s】Kubernetes 服务发现之 Ingress
基于helm部署Kubernetes下的高可用redis
笔者用过 helm,它是Kubernetes下的包管理器,相当于apt-get、yum、brew这样的软件工具,用的是 helm(v2)版本,下面所介绍的 helm指的都是 v2 版本。通过使用 helm 解决了安装和部署复杂的 Kubernetes 应用,比如经常使用的 memecache、redis、MySQL。也解决过部分粉丝在用 helm 部署程序过程遇到一些问题,其中有几个粉丝一再建议我写一篇文章介绍下 helm,其实我是不想写的,究其原因有两点,第一、helm 官网和镜像仓库介绍非常详尽,当然安装也非常简单。第二、helm 如果想深入使用,必须搞明白 go 的模板语法,对于大多数用户来说,只是用来管理不同环境的编排文件,现在又要学一门模板语言,有一定的学习成本,所以就这点我是不太认可 helm 的。当然很多人会说,不如直接选择 Kubernetes 集成的 Kustomize,不用安装任何多余程序,即可完成不同环境应用配置和打包,但从本质上来说,helm 和 Kustomize 是有一定区别的,Kustomize 利用base+overlay的思想生成最终的描述文件,对原有yaml 编排文件不用怎么修改,即可无缝集成,使用上更简单。而 helm 则又分为仓库、helm 客户端、tiller 服务端,使用过程中,在底层定义模板,外层赋值。使用起来更复杂,但不可否认 helm 更强大,它不仅能够完成不同环境应用的打包和配置,更是对应用进行全生命周期的管理,比如查看历史部署版本、回退、升级等;另外支持应用程序的查找、以及应用程序依赖关系定制化等功能。之前介绍过 Kustomize 的使用,下文结合 redis-ha 安装部署介绍下 helm,使你对 Kustomize 和 helm 之间的功能点有一个更清楚的认识。
用户5166556
2020/06/19
2.7K0
基于helm部署Kubernetes下的高可用redis
kubernetes1.22安装使用ingress-nginx
我们已经了解了 Ingress 资源对象只是一个路由请求描述配置文件,要让其真正生效还需要对应的 Ingress 控制器才行,Ingress 控制器有很多,这里我们先介绍使用最多的 ingress-nginx,它是基于 Nginx 的 Ingress 控制器。
我是阳明
2021/12/27
3.4K0
kubernetes1.22安装使用ingress-nginx
Kubernetes | Service - Ingress
Kubernetes Service 定义了这样一种抽象:一个 Pod 的逻辑分组,一种可以访问它们的策略——通常称为微服务。这一组 Pod 能够被 Service 访问到,通常是通过 Label Selector。
Zkeq
2023/05/11
6260
Kubernetes | Service - Ingress
Redis On K8s
考虑到我们这很多微服务依赖的redis的压力并不大(大量1-4G实例),轻量级的redis主从即可满足需求,使用社区现有解决方案,基本不会增加运维成本。
保持热爱奔赴山海
2022/01/11
1.5K0
Redis On K8s
Kubernetes(K8s) —— 容器编排管理技术
kubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具,这个工具 能通过两条指令完成一个 kubernetes 集群的部署:
时间静止不是简史
2021/08/12
15.6K1
Kubernetes(K8s) —— 容器编排管理技术
用Kube-router实现网络隔离
Network Policy是k8s提供的一种资源,用于定义基于pod的网络隔离策略。它描述了一组pod是否可以与其它组pod,以及其它network endpoints进行通信。
腾讯云原生
2020/02/14
1.8K0
详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
Linkerd 提供了许多功能,如:自动 mTLS、自动代理注入、分布式追踪、故障注入、高可用性、HTTP/2 和 gRPC 代理、负载均衡、多集群通信、重试和超时、遥测和监控、流量拆分(金丝雀、蓝/绿部署)等。
为少
2021/07/07
1.5K0
在生产环境中使用 Linkerd
到目前为止,我们一直在以最基本的形式使用 Linkerd,而没有关注生产级别的相关问题。本节我们将了解生产环境中使用的一些主要注意事项,包括高可用 (HA) 模式、Helm Chart、跨集群通信和外部 Prometheus。
我是阳明
2022/09/29
6640
在生产环境中使用 Linkerd
k8s 部署利器 helm v3 安装及使用指南
helm 是基于 kubernetes 的包管理器。它之于 kubernetes 就如 yum 之于 centos,pip 之于 python,npm 之于 javascript。
山月
2020/06/18
3.6K0
Kubernetes集群部署相关
free -h,显示内存和利用率 用swapon -s可以检查特定分区,逻辑卷或文件的交换,-s是摘要的含义,用它来获取交换的详细信息,以千字节为单位 或者使用top命令 vmstat,可以用该命令查看交换和交换信息,无法查看交换的总值
用户1413827
2023/11/28
7340
Kubernetes集群部署相关
[译]数据包在 Kubernetes 中的一生(3)
https://dramasamy.medium.com/life-of-a-packet-in-kubernetes-part-3-dd881476da0f
CNCF
2021/07/07
1.1K0
附034.Kubernetes_v1.21.0高可用部署架构二
Kubeadm 是一个工具,它提供了 kubeadm init 以及 kubeadm join 这两个命令作为快速创建 kubernetes 集群的最佳实践。 kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。kubeadm 只关心启动集群,而不关心其他工作,如部署前的节点准备工作、安装各种Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不属于 kubeadm 关注范围。
木二
2021/04/22
2K1
相关推荐
k8s安装redis主从版
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验