mirror of
https://github.com/chylex/IntelliJ-Keep-Editor-Tooltips-While-Debugging.git
synced 2025-09-18 22:24:48 +02:00
Compare commits
6 Commits
7b9c582ea4
...
main
Author | SHA1 | Date | |
---|---|---|---|
20148c0ed5 | |||
5a59a26bbb
|
|||
fe7a20920c
|
|||
b9a8bdaeba
|
|||
43857c2f7f | |||
5885e7c2bb |
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
github: chylex
|
||||||
|
patreon: chylex
|
||||||
|
ko_fi: chylex
|
10
README.md
10
README.md
@@ -1,7 +1,9 @@
|
|||||||
When debugging, IntelliJ-based IDEs stop showing editor popups, such as Quick Documentation and Error Description, to avoid conflicts with debugger popups.
|
When debugging, IntelliJ-based IDEs stop showing editor tooltips, such as Quick Documentation and Error Description, to avoid conflicts with debugger tooltips.
|
||||||
This behavior can be annoying since it affects popups from all elements, and not just those that actually conflict.
|
This plugin will keep showing editor tooltips, even while debugging.
|
||||||
|
|
||||||
This plugin will keep showing all editor popups, even while debugging.
|
If you hover an element that has tooltips from both the editor and the debugger, both tooltips are shown and moving the cursor on top of one hides the other.
|
||||||
If you hover an element that has popups from both the editor and the debugger, both popups are shown and moving the cursor on top of one hides the other.
|
|
||||||
|
Installing the plugin automatically re-enables all editor tooltips, even if installed in the middle of a debugging session.
|
||||||
|
Disabling or uninstalling the plugin requires an IDE restart.
|
||||||
|
|
||||||
[IDEA-120435](https://youtrack.jetbrains.com/issue/IDEA-120435)
|
[IDEA-120435](https://youtrack.jetbrains.com/issue/IDEA-120435)
|
||||||
|
@@ -8,7 +8,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.chylex.intellij.keeppopupswhiledebugging"
|
group = "com.chylex.intellij.keeppopupswhiledebugging"
|
||||||
version = "1.0.0"
|
version = "1.1"
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
@@ -1 +1 @@
|
|||||||
rootProject.name = "KeepEditorPopupsWhileDebugging"
|
rootProject.name = "KeepEditorTooltipsWhileDebugging"
|
||||||
|
@@ -17,8 +17,8 @@ class PluginLoadListener : DynamicPluginListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun beforePluginUnload(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) {
|
override fun beforePluginUnload(pluginDescriptor: IdeaPluginDescriptor, isUpdate: Boolean) {
|
||||||
if (pluginDescriptor.pluginId.idString == PLUGIN_ID) {
|
if (pluginDescriptor.pluginId.idString == PLUGIN_ID && !PreventHidingPopups.tryUninstallListener()) {
|
||||||
throw CannotUnloadPluginException("A restart is required to unload Keep Editor Popups While Debugging plugin.")
|
throw CannotUnloadPluginException("A restart is required to unload Keep Editor Tooltips While Debugging plugin.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -13,9 +13,30 @@ class PreventHidingPopups : StartupActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
private var isInstalled = false
|
||||||
|
|
||||||
fun installListener() {
|
fun installListener() {
|
||||||
|
if (isInstalled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
EditorMouseHoverPopupManager.getInstance() // Installs the default listener.
|
EditorMouseHoverPopupManager.getInstance() // Installs the default listener.
|
||||||
EditorMouseHoverPopupControl.getInstance()?.addListener(MouseTrackingDisabledListener)
|
EditorMouseHoverPopupControl.getInstance()?.addListener(MouseTrackingDisabledListener)
|
||||||
|
isInstalled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
fun tryUninstallListener(): Boolean {
|
||||||
|
val instance = EditorMouseHoverPopupControl.getInstance() ?: return true
|
||||||
|
|
||||||
|
return try {
|
||||||
|
val listenersField = instance.javaClass.getDeclaredField("listeners").also { it.isAccessible = true }
|
||||||
|
val listeners = listenersField.get(instance) as MutableCollection<*>
|
||||||
|
listeners.remove(MouseTrackingDisabledListener)
|
||||||
|
isInstalled = false
|
||||||
|
true
|
||||||
|
} catch (e: Exception) {
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun enablePopupsInAllProjects() {
|
fun enablePopupsInAllProjects() {
|
||||||
|
@@ -1,16 +1,31 @@
|
|||||||
<idea-plugin>
|
<idea-plugin>
|
||||||
<id>com.chylex.intellij.keeppopupswhiledebugging</id>
|
<id>com.chylex.intellij.keeppopupswhiledebugging</id>
|
||||||
<name>Keep Editor Popups While Debugging</name>
|
<name>Keep Editor Tooltips While Debugging</name>
|
||||||
<vendor url="https://chylex.com">chylex</vendor>
|
<vendor url="https://chylex.com">chylex</vendor>
|
||||||
|
|
||||||
<description><![CDATA[
|
<description><![CDATA[
|
||||||
<p>When debugging, IntelliJ-based IDEs stop showing editor popups, such as Quick Documentation and Error Description, to avoid conflicts with debugger popups.
|
When debugging, IntelliJ-based IDEs stop showing editor tooltips, such as Quick Documentation and Error Description, to avoid conflicts with debugger tooltips.
|
||||||
This behavior can be annoying since it affects popups from all elements, and not just those that actually conflict.</p>
|
This plugin will keep showing editor tooltips, even while debugging.
|
||||||
<p>This plugin will keep showing all editor popups, even while debugging.
|
<br><br>
|
||||||
If you hover an element that has popups from both the editor and the debugger, both popups are shown and moving the cursor on top of one hides the other.</p>
|
If you hover an element that has tooltips from both the editor and the debugger, both tooltips are shown and moving the cursor on top of one hides the other.
|
||||||
<p><a href="https://youtrack.jetbrains.com/issue/IDEA-120435">IDEA-120435</a></p>
|
<br><br>
|
||||||
|
Installing the plugin automatically re-enables all editor tooltips, even if installed in the middle of a debugging session.
|
||||||
|
Disabling or uninstalling the plugin takes effect when the next debugging session starts.
|
||||||
|
<br><br>
|
||||||
|
<a href="https://youtrack.jetbrains.com/issue/IDEA-120435">IDEA-120435</a>
|
||||||
]]></description>
|
]]></description>
|
||||||
|
|
||||||
|
<change-notes><![CDATA[
|
||||||
|
<b>Version 1.1</b>
|
||||||
|
<ul>
|
||||||
|
<li>Disabling or uninstalling the plugin no longer requires a restart.</li>
|
||||||
|
</ul>
|
||||||
|
<b>Version 1.0.1</b>
|
||||||
|
<ul>
|
||||||
|
<li>Renamed the plugin to "Keep Editor Tooltips While Debugging" and updated description.</li>
|
||||||
|
</ul>
|
||||||
|
]]></change-notes>
|
||||||
|
|
||||||
<depends>com.intellij.modules.platform</depends>
|
<depends>com.intellij.modules.platform</depends>
|
||||||
|
|
||||||
<extensions defaultExtensionNs="com.intellij">
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
Reference in New Issue
Block a user