The main new interfaces are:
- TreeDomainModel - background model interface;
- TreeViewModel - flow-based view model;
- TreeSwingModel - Swing compatibility layer.
Auxiliary classes:
- SuspendingTreeVisitor - suspending TreeVisitor equivalent;
- LoadingNode - converted to Kotlin and retrofitted to implement
TreeViewModel.
New presentation rendering is implemented in NodeRenderer.
TreeUtil.getUserObject() adapted to unwrap
TreeNodeViewModel instances, as at this point they don't
extend DefaultMutableTreeNode. It just doesn't seem necessary,
as Swing models technically don't require it.
In a similar fashion, CachedTreePresentation.getCachedNode
adapted to unwrap nodes as necessary, as the new implementation
forces nodes to be TreeNodeViewModel instances.
AbstractTreeNodeVisitor modified to call TreeUtil.getLastUserObject
instead of trying to unwrap the node itself. This lets us reuse
the new getLastUserObject implementation without duplicating logic.
The new implementation isn't used anywhere yet, so this commit
alone shouldn't affect anything.
GitOrigin-RevId: 8427b6642ff1902b3b71104c3611388e1270a5e4
Before migrating the Project View to the new models,
we need to take care of existing code that relies on the exact
implementation class.
For "Can this thing calculate nodes on a BGT?" instanceof checks,
introduce a new marker interface, BgtAwareTreeModel.
We may add methods such as isProcessing() there later.
Replace existing usages with the new interface.
For "Can this thing accept a visitor on a BGT?" instanceof checks,
introduce TreeVisitor.LoadingAwareAcceptor with the second
accept() overload that controls node loading. Replace existing
usages.
GitOrigin-RevId: 67905cc6873aab2f917ee2028d0a167f60fa85f7
Brought to you by: Vadim Salavatov, Dmitrii Batkóvich, Aleksandr Trushev, Yuriy Artamonov, Maksim Medvedev, Konstantin Nisht, Anna Saklakova, Yulia Zozulya
Squashed commits (original commits may be found in vadim.salavatov/nl-query-detect-backup branch):
rename things to Inline Prompt
remove println
rename module and package to intellij.ml.llm.inlinePromptDetector
Clear inlay hint in more cases
rename advanced setting
fix bug: code gen could've been invoked several times concurrently on several clicks on tab
use user data instead of a custom registry to track running code generation
rename methods
rename class
rename classes
rename survey classes
rename bundle
fix broken Alt+Enter inside prompt
cleanup
Clear inlay hint when generation is over
fix broken bulb
Don't start completion inside inline prompt, more powerful fix
disable inline completion when NLP markup is here
Don't start completion inside inline prompt
Fix blinking inlay hint
add dependency intellij.platform.lang.impl
magic wand caret fixes
Don't suggest auto-import action for highlight infos that are disabled in the editor
split tokens only by space
add kill switch for inline code generation
add private
cancel code gen on ESC
add more prompt instantiators
support disabling highlighting for prompt
Allow editor to have several highlighting predicates
Previously, one predicate was enough because it was used only for switching highlighting level (none/syntax/essential/all problems). Now, in addition to it, we need a way to filter our highlighters from different resolve contexts.
Thus, HighlighterFilter class is added which handles several predicates nicely.
Fix feedback ticket title
nlp input feedback dialog
remove NLP modules from IU ultimate
add activity for code generation, so that it is counted in LLM statistics
Show inlay hint with tab completion
add more words but not verbs
add language to usage events
fix theming
add more verbs
inline prompt first implementation
drop unused properties file
merge kotlin and java modules of nldetect into main module for now
remove llm and nldetect from bundled plugins
remove nldetect plugin, add dependency on its modules from llm
disable inline prompt by pressing Esc
don't resolve all leaves in a file
resolve only leaves on caret line
Revert "don't resolve all leaves in a file"
This reverts commit 1e36c778db2693090e1498b7063b6ece2005ab1c.
don't collect all children to check if it's a leaf
add java support
add dependencies
do not enable feature if ai disabled for project
add 'refactor' to prompt initiators
add more words
use as top priority action
fix typo
do not highlight more than one line
magic wand v2
use not null types
add advanced setting (idk but it doesnt work when one tries disable it, help pls)
add a proper icon for intention
extract prompt highlighting text attrs
i18n
add bundle
Natural language prompt detection prototype
refactor prototype
move kotlin highlighting into a dedicated module
rename module
introduce layer override in HighlightInfo (internal API) in favor of InternalHighlightingLayerSupplier
drop dead code
highlighting pass instead of an inspection
a bunch of very cursed hacks for the demo
make code generation inspection high priority
detect more verbs
fix in editor generation
another smth smth together with Dima Batkovich
something something
adjust position
magic wand caret
GitOrigin-RevId: a662396e479029cf89bc8a4e5a8f0d8725cbb63f
The previous implementation didn't expect that a parent component is also ActionToolbar and could contain some other components except the ActionToolbars
GitOrigin-RevId: 5b4b8bbe93496878fed7771b19752edebc32b225
1. No need to implement `CustomComponentAction` in an action
2. Support custom components for action wrappers
GitOrigin-RevId: eafd06b1f2c74f6f5b8fdfc3aa39525f3fea007c
Since we now have `event.uiKind`, `event.place` must not be used to alter UI behavior. The `place` is only for stats, logging and debugging.
Also, drop some unused methods.
GitOrigin-RevId: c996d5a446ac7688f1051604f7350bc81411d768
All settings that are currently synchronized are registered in XML as `<projectSettings>` or `<applicationSettings>`. Also, all missing `noStateLoaded` methods are implemented.
GitOrigin-RevId: bd77035b4b9f1ecaa1f00c95723b27a1299c86ca
Finally, there is now an easy way to detect whether an action is updated for a horizontal or a vertical toolbar. For the main menu, a context menu, or a popup.
GitOrigin-RevId: 046be7bd74501ddd46e04e46bec758dbc184e3d8
Introduces `ActionWithMergeId` to avoid duplication in UI for dynamic actions and groups present both on client and on host.
Fixes
GTW-9435 Inspections widget is doubled
GitOrigin-RevId: e7ae0def06cad3b0df6d733bfd3cccc357622673
Event holds some data that can be important for the post-processing like actionManager, place.
GitOrigin-RevId: 2f2d6ee01c8420d9f41d239d4b0115a27511aa67
A 4-value enum now includes previous "hard" and "soft" semantics without special treatment for `ToggleAction`.
See
IJPL-157628 Introduce Keep popups open for toggle items setting
GitOrigin-RevId: 123935b9367dd624b4c810b0dfa066fba23e1672
removes separate color settings for "Selected text highlighting"
disables highlighting of usages of element at caret when a selection is present
GitOrigin-RevId: f5009f7ac8508a02cf5e2aa16aee3d891d24fad5
`EdtDataRule` becomes `UiDataRule`. As previously, the name now reflects the data it operates on. It makes the fact rules are called in EDT and BGT less confusing
GitOrigin-RevId: 68f0f3451053ff387f90394872606434852aa32b