feat: psi structure for chat (#897)

* Change SwingDispatcher to Dispatchers.Main.immediate

* Change PSI analyzer package

* Added a blank for PSI analysis in the chat

* Add support for code structure analysis and improve tag management

- Refactor TagManager to use thread-safe collections
- Add support for new tag types (EditorTagDetails, FileTagDetails)
- Update UI components to handle structure analysis
- Add new icon for structure tags

* Refactoring tags v2

* Add PSI structure to chat settings

* Add VirtualFile to ClassStructure and improve PSI token tracking

* Support passing PSI structure to completion requests

* Add removeListener method to TagManager and fix memory leak

* Update buildOpenAIMessages to support PSI structure for all providers

* Add selected editor tag when initializing user input header

* Add chat settings configuration screen

* Remove unused editor tag and PSI structure settings panels

---------

Co-authored-by: a.iudin <a.iudin@vk.team>
This commit is contained in:
Aleksandr 2025-03-11 20:57:55 +03:00 committed by GitHub
parent 97185109ad
commit 7d472e8cf1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 1185 additions and 444 deletions

View file

@ -25,6 +25,7 @@ public final class Icons {
public static final Icon You = IconLoader.getIcon("/icons/you.svg", Icons.class);
public static final Icon Ollama = IconLoader.getIcon("/icons/ollama.svg", Icons.class);
public static final Icon User = IconLoader.getIcon("/icons/user.svg", Icons.class);
public static final Icon Tree = IconLoader.getIcon("/icons/tree.svg", Icons.class);
public static final Icon Lightning = IconLoader.getIcon("/icons/lightning.svg", Icons.class);
public static final Icon LightningDisabled =
IconLoader.getIcon("/icons/lightning.svg", Icons.class);