About PopClip compatibility with JetBrains IDEs

This post documents a compatibility issue observed between PopClip and the JetBrains suite of applications, including IntelliJ IDEA, PyCharm, PhpStorm, and WebStorm.

Summary

A “double-pasting” glitch may occur when using PopClip concurrently with an IntelliJ IDE. After investigating the issue with a JetBrains developer through email correspondence in July 2022, it was determined that a fix would require changes in the JetBrains editor code. As of April 2023, the issue persists. Consequently, the upcoming PopClip update will disable operation in JetBrains applications by default.

Background

Users have reported glitches when using PopClip with JetBrains applications, typically manifesting as a “double paste” where text is pasted twice in the JetBrains editor.

Mitigation

To circumvent the double-paste issue, users can disable PopClip in JetBrains IDEs by adding the application to the Excluded Apps list in PopClip. If necessary, PopClip can still be activated manually with a keyboard shortcut. This workaround has been recommended to users who have reported the issue.

Investigation

In July 2022, a JetBrains developer reached out to discuss the issue. The email conversation revealed that the issue stemmed from JetBrains editor code, specifically when PopClip’s use of the Accessibility API inadvertently causes the ⌘V command to be executed twice.

Next Steps

After the July 2022 investigation, I took no immediate action, as the JetBrains developer intended to address the issue on their end. There is no useful action I could take on the PopClip side to mitigate the issue short of disabling PopClip entirely within JetBrains editors, which I would prefer to avoid if possible. However, since the problem remains unresolved, the next version of PopClip will add JetBrains applications to the excluded apps list by default.

1 Like

Update October 2023. I re-tested the bug in September when I released PopClip 2023.9. It was still present, so I have kept com.jetbrains.* apps on the default block list.

1 Like