Idea Plugin Dev-02-04-IDE Infrastructure IDE基础架构
Logging
IntelliJ 平台使用 Logger 抽象类来屏蔽底层日志记录实现和配置。
插件应该获得一个专用实例:
import com.intellij.openapi.diagnostic.Logger;
public class MyPluginClass {
private static final Logger LOG = Logger.getInstance...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-04-Messaging Infrastructure 消息基础设施
目的
本文档的目的是向开发人员和插件编写者介绍 IntelliJ 平台中可用的消息传递基础结构。
它旨在回答为什么、何时以及如何使用它。
理由
那么,什么是 IntelliJ 平台中的消息传递,我们为什么需要它?
基本上,它的发布者订阅者模式的实现提供了额外的特性,比如在层次结构上广播和特殊的嵌套事件处理(这里的嵌套事件是指从另一个事件的回调中(直接或间接)触发新事件的情况)。
...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-03-threading 多线程
Read-Write Lock
通常,IntelliJ 平台中与代码相关的数据结构由单个读取器/写入器锁覆盖。
您不得在以下子系统的读取或写入操作之外访问模型:
程序结构接口 (PSI)
虚拟文件系统 (VFS)
项目根模型。
读取权限 Read Access
允许从任何线程读取数据。
从 UI 线程读取数据不需要任何特别的努力。
但是,从任何其他线程执行的读取操作需要包装...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-02-插件资源销毁 Disposer and Disposable
Disposer and Disposable
IntelliJ 平台的 Disposer 有助于资源清理。
如果子系统保持一组资源与父对象的生命周期一致,则子系统的资源应该在父对象之前或同时向处理器注册以释放。
Disposer 管理的最常见的资源类型是侦听器,但还有其他可能的类型:
文件句柄和数据库连接,
缓存和其他重要的数据结构。
Disposer 是管理 Disposab...
2017-10-13 02:24:52 |
Java
Idea Plugin Dev-01-插件结构 plugin struct
Plugin Content
插件的分发将使用Gradle或Plugin DevKit构建。
插件的.jar文件必须包含以下内容:
配置文件(META-INF/plugin.xml)(插件配置文件)
实现插件功能的类
推荐:插件标志文件(META-INF/pluginIcon*.svg)(插件标志)
请参阅有关优化插件分发文件的重要步骤的“分发大小”。
无法将插件分发定位到特定...
2017-10-13 02:24:52 |
Java
MySQL 中的时间字段
mysql 中的时间字段用什么数据类型
Mysql中用来存储日期的数据类型有三种:Date、Datetime、Timestamp
Date
Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。
按照标准的SQL,不允许其他格式。在UPDATE表达式以及SELECT语句的WHERE子句中应使用该格式。例如:
mysql> SE...
2017-10-13 01:40:27 |
Mysql
JCTree
JCTree
未走完的路
在 compile-doc-processor 中我们可以在编译时做一些事情;
在 javassist 中我们可以对 class 文件进行修改。
如果我们想在编译时直接对 class 文件进行修改,将二者结合起来可以吗?
答案是否定的,因为编译时 class 文件还没生成,javassist 的修改也就无从谈起。
如何解决这个问题?
答案之一就是 JC...
2017-10-13 01:40:27 |
Java
database view 数据库可视化开源工具
8 款数据库开源客户端
SQL Chat
SQL Chat 是 SQL 客户端中最年轻的选手,把 SQL 客户端从传统的 GUI-based 带入了 CUI (Chat-based UI) 阶段:它背后接入了 ChatGPT 来帮你写 SQL。
用户可以通过 sqlchat.ai 直接访问,也可以通过 Docker 进行私有化部署,支持的数据库包括 MySQL,PostgreSQL...
2017-10-13 01:40:27 |
Database