2034 Commits

Author SHA1 Message Date
axiom
7b68e06a97 OPENIDE axiomjvm specifics enabled 2025-04-30 13:27:27 +04:00
Dmitry Drobotov
4748a2cbfc IJPL-173992 Fix UISettingsState initialization if the application isn't loaded yet
(cherry picked from commit 43e40d182c3cd743d17c11b38498da4fa7c0f2b5)

IJ-CR-152966

GitOrigin-RevId: 305c2ba1b7d5c3245755fd2947eb6d9b42e26276
2025-01-16 12:04:42 +00:00
Alexandr Trushev
72bbf8c3bd IJPL-797 intellij.platform.editor review internal API
Revert hiding public static field `INSTANCE` since a plugin uses it


(cherry picked from commit 44a0a3a066d923e0167489f443b511493a875daa)

IJ-CR-152896

GitOrigin-RevId: dea487b441d60680b93b246ee5ab1ab036e11d44
2025-01-14 17:20:39 +00:00
Egor.Skrypnikov
1749944260 [Rider] IJ-CR-150167 Stats and a little more fixes
(cherry picked from commit b6101d5a2567c30f7cd3db359dd128bc757054b1)

IJ-CR-150213

GitOrigin-RevId: ebaf945f6a48cfc8a8e22436fa8993830ec571c5
2024-11-26 13:33:23 +00:00
Sergei Tachenov
41677ecfc8 IJPL-166086 Implement PhysicalAndLogicalStructureViewBuilder.createStructureViewSuspend
To avoid executing slow ops in getLogicalStructureBuilder()
on the EDT, split the implementation into the BGT and EDT parts.
The old function remains the same, but the new suspend
one executes the slow part in a regular readAction,
and the UI part on the EDT under the WIL.


(cherry picked from commit f772898db79b87079d03ee404ea8152359ec79e9)

IJ-CR-149552

GitOrigin-RevId: ef76166383c63919ffab3d7b14e30b8a5ee61a0d
2024-11-19 12:48:35 +00:00
Sergei Tachenov
66782f337c IJPL-166086 Convert StructureViewBuilder to Kotlin
Need to add some suspend stuff to it.


(cherry picked from commit 0a12edfddbe7cdc4c2254657155d4ae3cde2ea06)

IJ-CR-149552

GitOrigin-RevId: 33b50b8c12769c9072d02be869f3ca85a6fb6ca6
2024-11-19 12:48:35 +00:00
Nikita Pavlenko
077e72959e Introduced IMMUTABLE_FOLD_REGION UserData key for marking CustomFoldRegion as not-to-remove.
(cherry picked from commit c8018fe5471044a51cfa14623fa876ceb17c31f1)

GitOrigin-RevId: ea5fc2250cefc4ff5d3e6fff1d9e54c64dd64a60
2024-11-18 15:26:45 +00:00
Dmitry Batrak
d20f07b063 move code which accesses system selection to CopyPasteManager (for RDCT-1653)
add default implementations to new CopyPasteManager methods


(cherry picked from commit 28f7098deb3700a9a7f711986466cb028d4785b3)

IJ-CR-147422

GitOrigin-RevId: 2555e6921edb7cfcf4c43b67772efb1bad87ec4a
2024-10-31 11:49:49 +00:00
Dmitry Batrak
b2cac236d1 move code which accesses system selection to CopyPasteManager (for RDCT-1653)
(cherry picked from commit 7405a3177cbe4c4dc7202ce6eddcb0c289739437)

IJ-CR-147422

GitOrigin-RevId: 03582ba3d0ed899afcfaa4e993899f21d9897f56
2024-10-31 11:49:49 +00:00
Dmitry Batrak
811bd89e83 access clipboard via CopyPasteManager, not directly, in platform code (for RDCT-1653)
(cherry picked from commit 92f28619f23764e5eb6d6112b46ae56260bdbf0d)

IJ-CR-147457

GitOrigin-RevId: 489e846b77a43fa7096fc71424a18c4d9219cc3c
2024-10-29 09:46:44 +00:00
Vyacheslav Moklev
f065b84c36 [RDCT] GTW-6744: Support listening for custom shortcut actions
Some components, like `IrbRubyLanguageConsoleView`, don't register custom actions right away in constructor. They may postpone it, for example, until when a component is first shown. The old code in `ActionConverterUtil` didn't handle such cases, leaving a component without actions, or only with some of them.
This commit supports listening for action changes and updating them during the lifetime of a component.
The main flaw still left untouched in this commit is `if (contextActions.isEmpty()) return control` line.
If, at the moment of a component conversion, there are no custom actions, they will not be listened to in the future as well. This is left for now because of two reasons:
1. It still fixes GTW-6744.
2. Otherwise, **every single component** would be wrapped into an action behavior wrapper, which is a very high penalty for such a small feature.
It is possible to introduce some markers in the future, to avoid the creation of wrapper for every component, still supporting some of them. But this can be done when it becomes actually needed.


(cherry picked from commit e48b64be70d6908efa798aaaec2ee00985069740)

IJ-CR-147506

GitOrigin-RevId: 90cb2b28a5dca84012b4c775de8d69251e5ce7da
2024-10-24 15:19:13 +00:00
Gregory.Shrago
59394cd6cf make actionPerformed "override-only"
(cherry picked from commit ec0778e95bb7446185f68b9904892f7c7d193b5b)

IJ-CR-147429

GitOrigin-RevId: 358356cc2ecc87944fda9dbe4529c8c9f1610eae
2024-10-23 14:25:38 +00:00
Alexandr Trushev
3015d6e932 IJPL-163638 Expose accidentally hidden API UISettingsListener.TOPIC
(cherry picked from commit 52b517f781a0417bbbc3ab500e9e8c15e9fff4a4)

IJ-CR-147385

GitOrigin-RevId: a545b7c683d68d39a94b1ec834c60f2cffec9a12
2024-10-22 09:31:36 +00:00
Yann Cébron
6100fb3643 [platform] AnAction.isDumbAware: javadoc
GitOrigin-RevId: 8bc29885390ebcfca10bd611340768ed990d0dfe
2024-10-14 18:04:58 +00:00
Nikolay Chashnikov
269f036ea1 [platform] API cleanup: mark deprecated unused API for removal (IJPL-156972)
Deprecated APIs which still have internal usage are marked as internal to ensure that new external usages won't appear.

GitOrigin-RevId: eedfd26c8fb330df53d94a8768821f7878974100
2024-10-10 23:55:42 +00:00
Anton Kozub
20c62c2d7e IDEA-354490 floating action fixes
GitOrigin-RevId: 16f9b4b6fbebc22793bd98cf87152e651adbfc8c
2024-10-10 00:44:39 +00:00
Sergei Tachenov
fbdc860159 IJPL-161797 Implement the new toolbar compressing layout strategy
The new strategy no longer relies on the parent.
It works strictly top-to-bottom, looking inside child toolbars
for resizable components.

To make it work with the main toolbar, which isn't an ActionToolbar
itself, but a regular panel, its layout, HorizontalLayout, had to be
modified to accept an external function for calculating preferred sizes.

The new strategy first collects all resizable components, including
deeply nested ones, and then distributes the available size between them.
Then calculating the sizes of toolbars and their components becomes trivial.

GitOrigin-RevId: d11c47f010169b9175340ed9f0005822ddc4c346
2024-10-08 11:02:42 +00:00
Sergei Tachenov
a1c0fd3ded IJPL-161797 Optimize calculateComponentWidths
No need to ++ by a single pixel on every iteration.
If there are other components left, we should at least increase
the component's width so it changes its position in the queue,
and we take another component on the next iteration.
Without exceeding its preferred width, of course.

If it's the last component, just extend it to its preferred size.

In both cases take care to not exceed the actually available
width.

GitOrigin-RevId: 73476a870e28873a761cdd6f38ee9b7881a4947d
2024-10-08 11:02:42 +00:00
Sergei Tachenov
1412a6525c IJPL-161797 Refactor toolbar compression
A lot of refactorings squashed into a single commit,
as otherwise there would be way too many commits
for such simple changes, mostly extracting functions,
renaming/introducing/inlining variables.

No functional changes here.

GitOrigin-RevId: ef5b04adba30b1c72a8b0daaf64bb9b4783dcab7
2024-10-08 11:02:42 +00:00
Ilya.Kazakevich
845656d8e2 AnAction.update is always called under the read action.
Countless number of actions depend on this fact implicitly and do not take read action.

Lets document it.

GitOrigin-RevId: a6379cf3bdfb0c13793a872f9b41142d952d3643
2024-10-05 00:27:18 +00:00
Daniil Ovchinnikov
823e985f18 API dumps: re-generate dumps
GitOrigin-RevId: b5cec844cbfe3313723404f7a85b590c25350b41
2024-10-04 21:20:21 +00:00
Nikolay Chashnikov
4f8bcd9161 [platform] API cleanup: remove unused deprecated API (IJPL-156972)
GitOrigin-RevId: 183acaca734cbf2e053be244cd4292acc8d24991
2024-10-04 17:48:37 +00:00
Nikolay Chashnikov
e38ef7919f [platform] API cleanup: remove unused deprecated ActionToolbar.getLayoutPolicy method (IJPL-156972)
GitOrigin-RevId: bb9be1611f7c70d7e4f949399c930fad5f4c8dad
2024-10-04 17:48:37 +00:00
Vojtech Balik
cd2047b754 [reader-mode] fix KDoc
GitOrigin-RevId: 99a35c8b237541a94f93424ac112d8abf906947f
2024-10-03 21:59:40 +00:00
Aleksey Pivovarov
42f8522196 platform: stress out AnAction contract change in Javadoc
GitOrigin-RevId: f3210ccb0de7f761806def1e2bbe5618bfab868c
2024-09-30 20:48:48 +00:00
Alexey.Berezhnykh
3286019377 Rider/Push-To-Hint: support double press + holding Ctrl
GitOrigin-RevId: ac1da1599de24497ca3b98bfe1c3a84d1ed0eb6e
2024-09-27 23:15:24 +00:00
Vladimir Krivosheev
a9e7930abe bazel - build lang-impl
GitOrigin-RevId: c4c4dce20bd6e4046644f95f6e7b3f437c51668d
2024-09-27 13:47:17 +00:00
Gregory.Shrago
acd6732fd9 add knownIssue section for top issues
GitOrigin-RevId: 3c14a0f95846e432a28fdc680089ebc124ddb8a3
2024-09-26 01:47:21 +00:00
Vladimir Krivosheev
a1210118c0 bazel - fix JPMS, exports and internal
GitOrigin-RevId: 3dc80a9ee01e1900c0cebc24b2d08f04f93ddeff
2024-09-25 19:05:37 +00:00
Daniil Ovchinnikov
450b2f7d7c remove unnecessary @RequiresBlockingContext annotations
GitOrigin-RevId: 3f78091e5734aba6b86ca28f9bae033732592ceb
2024-09-23 20:08:27 +00:00
Anton Kozub
f4cfc93c43 IDEA-354490 API cleaning
GitOrigin-RevId: 864d1da9a5e578edfeb0ec672c1a7758b100e754
2024-09-22 22:19:54 +00:00
Anton Kozub
2b3644f0e3 IDEA-354490 Floating actions
GitOrigin-RevId: 714ecbfc9626df702e290818d7655be3f9884043
2024-09-22 22:19:45 +00:00
Vladimir Krivosheev
4eb9b78b78 use bazel to build platform-impl
GitOrigin-RevId: b5bbc75323a08c7674777e512dcfd988ceb4461f
2024-09-22 17:01:28 +00:00
Vladimir Krivosheev
834bd75254 run jps-to-bazel by Bazel, compile platform using Bazel
GitOrigin-RevId: 3774d5adc404b02036f70b7cc35c9e60fdb5d84c
2024-09-21 00:54:17 +00:00
Sergei Tachenov
be921b067e IJPL-158493 New tree model implementation
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
2024-09-13 17:27:32 +00:00
Sergei Tachenov
1f3bbf9580 IJPL-158493 Reduce dependency on AsyncTreeModel
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
2024-09-13 17:27:32 +00:00
Aleksey Pivovarov
21669bd9b2 IJPL-72931 vcs: enable 'Blame' for preview toolwindows in "Find Usages" and "Find in Path"
GitOrigin-RevId: 9561f20b13c05a3745e6c54a32fa42ea32f4ded7
2024-09-13 16:22:15 +00:00
Vadim Salavatov
99a2fde9ae IJPL-161819 AI: provide a way to write a prompt in natural language right in the editor
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
2024-09-07 04:42:12 +00:00
Vera Petrenkova
1157abcc54 Revert "IJPL-161649 Refactor CompressingLayoutStrategy calculation logic"
This reverts commit 5b4b8bbe93496878fed7771b19752edebc32b225.

GitOrigin-RevId: 2825b90a5c0fd1509c2611a1c23db21966069f8d
2024-09-06 12:06:09 +00:00
Vera Petrenkova
682c9e76d3 IJPL-161649 Refactor CompressingLayoutStrategy calculation logic
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
2024-09-04 17:29:29 +00:00
Gregory.Shrago
26f87a9fc6 introduce ActionUtil.COMPONENT_PROVIDER
1. No need to implement `CustomComponentAction` in an action
2. Support custom components for action wrappers

GitOrigin-RevId: eafd06b1f2c74f6f5b8fdfc3aa39525f3fea007c
2024-08-31 02:55:51 +00:00
Gregory.Shrago
a7dc5858f4 exclude search popups in isFromContextMenu
Fixes missing `FindInPathAction` in Find Action.

GitOrigin-RevId: 27b6d6ef8ed7fa9e00983ec22e3ebca5b42cfa76
2024-08-30 18:50:13 +00:00
Gregory.Shrago
8a8f1c7862 drop BackgroundableDataProvider
GitOrigin-RevId: 97284b0ae7f0d090cb6e1656a23fdd9261202fee
2024-08-29 16:39:53 +00:00
Gregory.Shrago
e6ee0c21e8 deprecate ActionPlace.isXXXPlace methods
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
2024-08-28 05:13:52 +00:00
Vyacheslav Moklev
bd73a88a00 [RDCT] GTW-9421: Declare currently synchronized setting in XML and fix load methods
All settings that are currently synchronized are registered in XML as `<projectSettings>` or `<applicationSettings>`. Also, all missing `noStateLoaded` methods are implemented.

GitOrigin-RevId: bd77035b4b9f1ecaa1f00c95723b27a1299c86ca
2024-08-26 17:14:38 +00:00
Gregory.Shrago
6a99775dae introduce ActionUiKind.SEARCH_POPUP
Any action search popup - SE, Find Action, any local action search.

GitOrigin-RevId: 68c89a3d302ef72e7a9393bb7683ab1f7f14da76
2024-08-26 16:49:35 +00:00
Dmitry Avdeev
9a85897633 typos
GitOrigin-RevId: 3debbde05a4ccf4ce87d0906ddbdc8dbe8040e63
2024-08-26 16:07:23 +00:00
Yuriy Artamonov
90f2e26354 [ui] IJPL-160993 Editor: Set default tab limit to 30
GitOrigin-RevId: d1992220370246baa948b946ee917324c007a6ee
2024-08-26 12:46:42 +00:00
Gregory.Shrago
479b72a2d2 deprecate AnActionEvent without uiKind
GitOrigin-RevId: e86a825a8cd2344f50c3f44bc07ec03e2e328581
2024-08-23 09:56:07 +00:00
Gregory.Shrago
03461c332d deprecate ActionPlaces.isPopupPlace
GitOrigin-RevId: bb03298be7085af8c377bd0c17dc0a577d43b2f4
2024-08-23 09:56:07 +00:00