赞
踩
使用"CamelHumps单词"
时能够驼峰选中。但是这种情况比较粗暴,直接全局开启了。但是在日常开发中,其实选中大部分是整个单词一起选中。只有少部分情况是按照驼峰选中。Plugin DevKit
用于安装插件,安装完成之后建议先重启一下,不然可能开发工具可能出不来。idea.is.internal=true
开启内部模式,重启后生效。Plugin DevKit
插件,这里就没有当前选项)。build.gradle.kts
中的repositories,注释中央仓库(mavenCentral)。配置阿里云地址。repositories {
// mavenCentral()
maven {
url = uri("https://maven.aliyun.com/repository/public")
}
}
localPath
设置本地idea的安装路径。参考:https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extensionintellij {
localPath.set("D:\\Program Files\\JetBrains\\IntelliJ IDEA 2024.1.2")
// version.set("2023.2.6")
// type.set("IC") // Target IDE Platform
plugins.set(listOf(/* Plugin Dependencies */))
}
kotlin
目录名修改为java
。选中kotlin目录,按shift+f6修改目录名为java。不修改后面可能会报错。build.gradle.kts
,解决编译中文报错和控制台中文乱码问题。tasks {
// Set the JVM compatibility versions
withType<JavaCompile> {
sourceCompatibility = "17"
targetCompatibility = "17"
// 解决编译时中文报错
options.encoding = "UTF-8"
}
// 添加以下内容,解决运行时控制台中文乱码
withType<JavaExec> {
jvmArgs = listOf("-Dfile.encoding=UTF-8", "-Dsun.stdout.encoding=UTF-8", "-Dsun.stderr.encoding=UTF-8")
}
...
}
ctrl+alt+鼠标左键
点击ui,就能显示当前ui的详细信息。找到他的Group Id
然后创建action时搜索选择就好了。EditorSmartKeysConfigurable
editorSettings
的来源。可以看到editorSettings
的数据源是EditorSettingsExternalizable.getInstance()
CamelWords
的状态取反就可以了。public class SelectCamelWordsAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
// 获取到编辑器设置
EditorSettingsExternalizable editorSettingsExternalizable = EditorSettingsExternalizable.getInstance();
// 对之前的状态取反
editorSettingsExternalizable.setCamelWords(!editorSettingsExternalizable.isCamelWords());
}
}
SelectCamelWords
就能够快捷开启关闭驼峰选中的功能。<applicationListeners>
<listener class="com.maple.plugindemo.MyKeyListener" topic="com.intellij.openapi.application.ApplicationActivationListener"/>
</applicationListeners>
public class MyKeyListener implements ApplicationActivationListener { private final KeyEventDispatcher dispatcher = new MyKeyEventDispatcher(); @Override public void applicationActivated(@NotNull IdeFrame ideFrame) { KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(dispatcher); } @Override public void applicationDeactivated(@NotNull IdeFrame ideFrame) { KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(dispatcher); } private static class MyKeyEventDispatcher implements KeyEventDispatcher { // 分发器逻辑 } }
private static class MyKeyEventDispatcher implements KeyEventDispatcher { private boolean shiftPressed = false; private boolean ctrlPressed = false; private boolean winPressed = false; private final EditorSettingsExternalizable editorSettingsExternalizable = EditorSettingsExternalizable.getInstance(); @Override public boolean dispatchKeyEvent(KeyEvent e) { int keyCode = e.getKeyCode(); int id = e.getID(); if (id == KeyEvent.KEY_PRESSED) { switch (keyCode) { case KeyEvent.VK_SHIFT: shiftPressed = true; break; case KeyEvent.VK_CONTROL: ctrlPressed = true; break; case KeyEvent.VK_WINDOWS: winPressed = true; break; } if (shiftPressed && ctrlPressed && winPressed) { // 开启驼峰选中 System.out.println("Shift + Ctrl + Win 按下!"); editorSettingsExternalizable.setCamelWords(true); } } else if (id == KeyEvent.KEY_RELEASED) { switch (keyCode) { case KeyEvent.VK_WINDOWS: if (shiftPressed && ctrlPressed) { // 关闭驼峰选中 System.out.println("Win 键抬起!"); editorSettingsExternalizable.setCamelWords(false); } winPressed = false; break; case KeyEvent.VK_SHIFT: shiftPressed = false; break; case KeyEvent.VK_CONTROL: ctrlPressed = false; break; } } return false; // 继续分发事件 } }
build.gradle.kts
中的patchPluginXml
,它用来不是兼容的idea版本。该值会覆盖plugin.xml
中的idea-versin
标签,所有可以直接把兼容版本写在这里。patchPluginXml {
// 最低版本
sinceBuild.set("232")
// 最高版本
untilBuild.set("242.*")
}
<idea-version since-build="232" until-build="242.*"/>
applicationListeners
就在193.0之后发布,我的最低版本就只能设置193.0。最大版本不设置。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。