Commit Graph

120 Commits

Author SHA1 Message Date
Yuriy Artamonov
e1fa31e074 [java] IJPL-35276 Move JavaIdeLanguageCustomization to intellij.java.ide.customization
GitOrigin-RevId: df7050cee69caf31a74454d974740e7d8dd293e2
2025-08-04 16:03:24 +00:00
Yuriy Artamonov
da69f46381 [min-build] IJPL-198515 Move Java extension registrations to the appropriate place
GitOrigin-RevId: 0a6a95e82d9e7609acc88a78ab1f45626c848a67
2025-08-03 12:14:24 +00:00
Mikhail Pyltsin
40760b916e [command-completion] IDEA-373902 Command completion. New actions: Surround with
GitOrigin-RevId: a9d60646650ea4b276dc15dab875b759928f7e81
2025-08-01 16:11:01 +00:00
Mikhail Pyltsin
a119bc85cc [command-completion] IDEA-373902 Command completion. New actions: Generate constructors
GitOrigin-RevId: 02d2af96982d53a0734c9c1f57a452758a184b85
2025-07-31 18:17:37 +00:00
Mikhail Pyltsin
5b2b71e74e [command-completion] IDEA-373902 Command completion. New actions: Quick Documentation
GitOrigin-RevId: 1b11c9c09af1413480f2f3237387080b14ad7b72
2025-07-31 14:49:10 +00:00
Mikhail Pyltsin
b27f71e6f8 [command-completion] IDEA-373902 Command completion. New actions: Type Info
GitOrigin-RevId: 3cd8a347a27a49a515ba40859518fcf4900e590f
2025-07-31 14:49:10 +00:00
Mikhail Pyltsin
34b38a8b42 [command-completion] IDEA-373902 Command completion. New actions: Type hierarchy
GitOrigin-RevId: d2905dc291b7d3a28b105f921eb0457aa88d60ed
2025-07-31 14:49:09 +00:00
Mikhail Pyltsin
f3dae0e5ed [command-completion] IDEA-375959 Command completion: optimize imports is available only after imports section, but not on the line with imports
GitOrigin-RevId: eee1a3077747d0e7e75f98efed5c855e3f28dc52
2025-07-28 17:12:09 +00:00
Vlad Koshkin
f1d059e80c [kotlin] migrate Kotlin Scripting to custom WSM entities
#KTIJ-34948 Fixed

GitOrigin-RevId: 07026ad0241ec3619928d17d6c84b1b5fd6907af
2025-07-18 19:26:28 +00:00
Mikhail Pyltsin
afdb811b16 [command-completion] IDEA-375692 Command completion. Disable comment with line
GitOrigin-RevId: a7eda308caa102c854237ddde06e7e5a9ccef4cf
2025-07-09 19:21:05 +00:00
Mikhail Pyltsin
a15a826cd0 [java] IDEA-375577 Experiment with 'Compact source file' as a separate action
- move caret inside body
- move action under Java

GitOrigin-RevId: b8dddfd9711b4f3b251ec935b781518f64716bbf
2025-07-09 19:21:05 +00:00
Mikhail Pyltsin
876a23ebe2 [java] IDEA-375577 Experiment with 'Compact source file' as a separate action
GitOrigin-RevId: 448f88ce96042ed144d922ca80aeb0bfcfde8be6
2025-07-08 10:34:21 +00:00
Nikolay Chashnikov
e569e5068b [java] remove deprecated 'moduleConfigurable' extension point (IJPL-179175)
It was the last module-level extension point in intellij sources. It was marked as deprecated several years ago, and an error was logged if it was used.

GitOrigin-RevId: 315a280c5e0908123aefedec565aafab5ee758c3
2025-07-04 17:37:23 +00:00
Mikhail Pyltsin
3a52f8601c [java] IDEA-371865 Inspection to convert 'System.out'<->'IO'
GitOrigin-RevId: fdb87ffc06388bd022224000c7b4e8d9e2013e9d
2025-07-02 17:32:09 +00:00
Bartek Pacia
cecb0e152a [java] IDEA-372997 Rename Structured Concurrency template context IDs for clarity and alignment with JEPs
GitOrigin-RevId: 49ce008fe9927664542e1f4ec2d16564e4be893a
2025-06-30 13:03:38 +00:00
Bartek Pacia
2e30b4d2c4 [java] IDEA-372997 JavaFeature: create two versions of the Structured Concurrency to reflect reality in JEPs
see discussion in IJ-MR-167068

GitOrigin-RevId: 6d36cb4375f8f6a6d7d7b603de037c2c7a5255a8
2025-06-30 13:03:38 +00:00
Bartek Pacia
90549f68a6 [java] IDEA-372997 Bring back stss and stsf template and restrict to only JDK 24 preview
GitOrigin-RevId: d89039c7426017c35f70bdcbb11061fcfedf22a3
2025-06-30 13:03:38 +00:00
Bartek Pacia
abfeff2bff [java] IDEA-372997 Restrict sts template to only JDK 25 preview
GitOrigin-RevId: 40d0c8a18018eaf2d086af82f47298e83204dcec
2025-06-30 13:03:38 +00:00
Mikhail Pyltsin
26814db524 [java-inspections] WIP IDEA-374760 Move implicit classes inspections to Java 25 migration aids category
- move to java 25 folder
- update tests and fix error with incorrect resolve with new language levels
- IO.println will be updated later

GitOrigin-RevId: 93985096433766e33178da6048ce4554063841a2
2025-06-24 23:04:26 +00:00
Dmitriy Smirnov
5bee69ecfc IDEA-364969 Make the order of toolbar actions in Maven and Gradle the same
This is important for scenarios of co-usage of the tools, which become more important when using worksapces.

GitOrigin-RevId: ceeb0b433935484fce450992c5beee377b6cbe80
2025-06-24 12:55:45 +00:00
Mikhail Pyltsin
7b6981f118 [java] IDEA-373074 Improve SOUT templates for java 25
GitOrigin-RevId: 688a0f2ccefaa6f3f9b51c8528fa11e61d0798b0
2025-06-19 17:14:47 +00:00
Sergei Vorobyov
f10a240e01 [DependencySubstitution] cleanup: encapsulate coordinate matching inside DependencySubstitutionExtension
Encapsulated dependency coordinates allows to misunderstanding what is the dependency coordinates and how they should compare with each other. Also, it forbids dependency coordinate hijack by other extensions.

Maven coordinates should be specified only by the Library and Module Maven coordinate entities.

### Code Reviews
  * IJ-CR-164983

### Issues
  * IDEA-370483 Maven performance degradation related to library dependency substitution

GitOrigin-RevId: 01461ea4bf0fe44e60a80404a2cf08f16c0d5853
2025-06-13 21:26:49 +00:00
Vladimir.Koshelev
be20db0c55 SID-73: single IntelliJ IDEA distro
IJPL-182235: return a plugin dependency to avoid CNFE [spring.data] -> [spring.el.contexts]

SpringDataQLInjectorBase in spring-data uses ElTemplateParser class from com.intellij.javaee.el

Merge remote-tracking branch 'origin/master' into singleDistro252

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	community/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt

[remote-driver] Simplify JBA login in tests

Replaced repetitive inline browser handling code with `logInToJba` helper method.

Merge remote-tracking branch 'origin/master' into singleDistro252

IJPL-182235: filter out plugins that depend on explicitly disabled ones

Do not try to enable plugins that have at least one direct or transitive non-optional dependency in disabled_plugins.txt

[patronus] IJI-2659: add plugins/ultimate-plugin to rider.rules

Merge remote-tracking branch 'origin/master' into singleDistro252

[integration tests] IJPL-182235: do not disable paid plugins on startup in WarmupIntegrationShortTest

[integration tests] IJPL-182235: do not disable paid plugins on startup in DynamicNonBundledPluginsTest

[integration tests] IJPL-182235: do not disable paid plugins on startup in DynamicLoadingDatagripPluginTest

[remote-driver] IJPL-182235: do not disable paid plugins on startup in ToolWindowsUiTest

[remote-driver] IJPL-182235: do not disable paid plugins on startup in StatusbarTest

[integration tests] IJPL-182235: do not disable paid plugins on startup in workspace model integration tests

[remote-driver] IJPL-182235: do not disable paid plugins on startup in UpdateRequestTest

IJPL-182235: add an option to not disable paid plugins on startup in tests

IJPL-182235: make shouldStartWithPaidPluginsDisabled a bit more readable

[remote-driver] Add license tests tags and suites

[remote-driver] Improve BaseLicenseUiTest data cleanup for local run

[remote-driver] LicenseDialogUi Cleanup

[remote-driver] Extend AuthDialogUi with DialogUiComponent

Replaced UiComponent with DialogUiComponent as the base class for AuthDialogUi

[remote-driver] Add EAPLicenseUiTest

[remote-driver] Rename `TokenAuthDialogUi` to `AuthDialogUi`

IJPL-189370: change EAP expiration logic in unified builds to the standard one

IJPL-182235: do not disable the Ultimate plugin on IDE startup in EAPs

!fixup [remote-driver] AT-2142 Create single distro license tests

[remote-driver] AT-2142 Create single distro license tests

IJPL-187422 fix empty system name for license expiration dialog

[remote-driver] Add UI test stubs for single distro licenses

AT-2142 Add trial license generation support in tests

Implemented a new method to generate trial licenses

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	build/expected/ultimate-content-platform.yaml
#	community/platform/platform-impl/src/com/intellij/ide/plugins/newui/ListPluginComponent.java
#	community/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt
#	community/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginModelFacade.kt

AT-2129 Add a test for loading an ultimate plugin after activating the IDE

IJ-CR-164880

IJPL-187743: replace reference comparison with `Objects.equals` for String in isFromSubscriptionExpirationDialog

String references *may* be reused, but it seems like it doesn't happen in built installers, so let's use a more reliable equality check

IJPL-184018: "Continue and Restart..." in the force choice dialog should restart the IDE

IJPL-187785: call dry run trial license on startup once a day even in the TRIAL_AVAILABLE state

If the user hasn't accepted the trial yet, and it's no longer available, update the state

IJPL-187785: don't call dry run trial license more than once a day

Even in the error state

[singleDistro] move com.intellij.frameworkSupport extension point to lang module from java

Without that we will consider database plugin as non-dynamic for IDEs without java plugin since it requires com.intellij.frameworkSupport  EP, but it is not loaded.

Add plugins/ultimate-plugin to executeOnChanges for Kotlin Ultimate and RubyMine Tests (IJI-2659)

PatronusConfigYamlConsistencyTest failed after merging the latest changes from master

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	.patronus/src/checks/rustrover/RustRoverTestsAggregator.kt

Add plugins/ultimate-plugin to executeOnChanges for RustRover Tests in .patronus/.../RustRoverTestsAggregator (IJI-1562)

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	.patronus/src/main/org/jetbrains/intellij/patronus/gen/checks/rustrover/RustRoverTestsAggregator.kt
#	community/platform/platform-impl/api-dump-unreviewed.txt
#	community/platform/platform-impl/src/com/intellij/ide/plugins/DynamicPlugins.kt
#	community/platform/platform-tests/testSrc/com/intellij/ide/plugins/DynamicPluginsTest.kt
#	plugins/llm/javaee/spring/mvc/BUILD.bazel
#	plugins/llm/javaee/spring/mvc/intellij.ml.llm.javaee.spring.mvc.iml
#	ultimate/ultimate-resources/resources/META-INF/plugin.xml

PY-81389, PY-81220 The "Trial" widget appears in the EAP builds

IJPL-187601 Licenses: Log out should propose restart only if there is a subscription

PY-81389, PY-81220 The "Trial" widget appears in the EAP builds

IJPL-187785: show the error state in the trial widget only when dry-run failed for the user eligible for auto trial

either a new user or a user with an old enough config (at least 6 months)

Merge remote-tracking branch 'origin/master' into singleDistro252

IJPL-187785: add an error state for the trial widget

IJPL-182435: do not execute trial acquisition with Ultimate plugin enabled

IJPL-186844: convert groovy duplicates detection to content modules

IJPL-186844: check class loaders in checkCanUnloadWithoutRestart for optional dependencies

Co-authored-by: Vadim Salavatov <vadim.salavatov@jetbrains.com>

Revert "IJPL-186844: do not process non-optional module dependencies when onlyOptional is true in processDependenciesOnPlugin"

This reverts commit 411880ca36cc6d7c70222c1d0086119e8ffbf7fd.

IJPL-183884: adjust dynamic plugins test

The previous version led to `ClientSessionsManager is registered as application service, but requested as project one` errors in some other tests when running on TeamCity

Update Bazel files

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	.patronus/config.yaml
#	.patronus/src/main/org/jetbrains/intellij/patronus/gen/checks/rustrover/RustRoverTestsAggregator.kt

IJPL-182235: remove extra compile dependencies from llm spring modules [spring.data] -> [spring.el.contexts]

Reported by `IdeaUltimatePluginModuleDependenciesTest.testPluginModuleDependencies` for `intellij.ml.llm.javaee.spring.data` and `intellij.ml.llm.javaee.spring.mvc`

Add plugins/ultimate-plugin to executeOnChanges for RustRover Tests in .patronus/config.yaml (IJI-1562)

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	community/platform/platform-api/resources/messages/IdeBundle.properties
#	community/platform/platform-impl/src/com/intellij/ide/plugins/newui/PluginDetailsPageComponent.kt
#	licenseCommon/source/com/intellij/ide/license/impl/UnifiedLicenseManager.java
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateService.kt

IJPL-183257: rename AutoTrialForNewUserProjectActivity to TrialProjectActivities

IJPL-183257: break AutoTrialForNewUserProjectActivity into separate activity classes

IJPL-183257: load paid plugins on the New project wizard opening in PyCharm

- for new users when trial is available
- for logged-in users when an active license was found

IJPL-183257: convert PyCharmNewProjectAction to Kotlin

Rename .java to .kt

IJPL-183257

IJPL-183257: load paid plugins on the New project wizard opening in IDEA

- for new users when trial is available
- for logged-in users when an active license was found

IJPL-183257: try loading paid plugins on the Licenses dialog closing

If the Ultimate plugin is still enabled on close (there's an active license), the plugins will be loaded if needed

IJPL-183257: execute trial check as early as possible

Make TrialStateService an applicationService that is preloaded on app start instead of a light service that is loaded on first access from the widget after the project opening

IJPL-187204 Disable the "Enable" btn in the Marketplace tab for Ultimate plugins

IJPL-187743 Force choice dialog should reappear if Manage Subscriptions is closed without activating

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	community/platform/platform-api/resources/messages/IdeBundle.properties
#	community/platform/platform-impl/src/com/intellij/openapi/application/ConfigImportHelper.java

IJPL-187740: move project activity into DynamicPaidPluginsService, get rid of PropertiesComponent usages

IJPL-187733 Manage subscription dialog is opened multiple times after closing plugin manager

IJPL-187763 Wrap the message in Plugin available with subscription

IJPL-187740: rename DynamicPluginsService to indicate that it is about paid plugins

IJPL-187740: move DynamicPluginsService to the platform

IJPL-183257: add more logs for loadPaidPlugins

IJPL-187412: do not show the Licenses dialog right after enabling the Ultimate plugin

No delay resulted in showing the dialog while issuing a trial license. Successful trial acquisition should be "silent"

Related ticket: IJPL-177912 - Add an action to activate paid mode

IJPL-187412: execute an anonymous trial dry-run when userId is null (not logged in)

IJPL-182435: make pluginKey `@NotNull` in `shouldObtainLicenseAutomatically`

Avoid possible NPEs on pluginKey if the subclass doesn't check it

Merge remote-tracking branch 'origin/master' into singleDistro252

SID-87, IJPL-187565 Fix Activate subscription buttons to call an action instead of URL

SID-87: Update vision pages to new design

IJPL-182252: extract trial availability check to a separate function

IJPL-182435, IJPL-182252: add logs for trial availability check and auto-trial

IJPL-187424: remove got-it tooltip for trial grace period state

IJ-CR-161922: put all method parameters on separate lines

IJPL-183891 UI: Adjust license management dialog to work with subscription

Adjust trial days message logic and tooltip handling

Unified message formatting for trial days left. Replaced distinct messages for "1 day" and "0 days" with a single format using choice logic. Updated tooltip logic to ensure `remainedDays` is always non-negative.

IJPL-182235, IJPL-187253: schedule paid plugins loading synchronously with the non-modal modality state

If invoked in the background, it might lead to races between Ultimate plugin unloading on Continue for free and scheduled loading on activate/restore license

IJPL-186903: fix an exception on plugin unloading when the Licenses dialog is shown

IJPL-186901: fix exceptions on plugin loading when the Licenses dialog is shown

IJPL-182235, IJ-CR-161922: add an overload for `DynamicPluginEnabler.enable` to pass a progress title

Simply wrapping the call in `withModalProgress` doesn't show the progress

IJPL-186920: activate a license if it is found during the trial availability check in the free mode

IJPL-183891 UI: Adjust license management dialog to work with subscription

IJPL-186844: do not process non-optional module dependencies when onlyOptional is true in processDependenciesOnPlugin

Co-authored-by: Vadim Salavatov <vadim.salavatov@jetbrains.com>

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateUtils.kt

IJPL-182435, PY-79495: remove commercial.license dependency from trialPromotion

IJPL-182435, PY-79495: make register Pro/Ultimate trial silent action when possible

IJPL-182435: automatically start a trial for a completely new user

IJPL-182435: factor out ConfigImportHelper.getConfigLastModifiedTime utility function

IJPL-183132 Trial widget: non customizable action

Merge IJ-MR-161630: IJPL-182252: Do not propose trial if the user had any other license active during the last 4 months
IJPL-186755 Add exit app option to restart dialog

PY-79495 Start Free Trial action on the Trial Widget

PY-79495 make register Pro/Ultimate trial silent action when possible

IJPL-186172 UI: Changes in plugin manager

IJPL-182235: load paid plugins after the project opening

IJPL-182235: extract dynamic loading of the paid plugins to a separate service

IJPL-182235: load paid plugins when valid license is restored

If the IDE is started in free mode, the user is logged in and clicked on Manage Subscriptions; a valid license might be restored (e.g.: JetprofileSource). In this case LicenseEntryModel.activateLicense is not called.

IJPL-183846: show the force choice dialog after the project opening

If no project is open yet, save the verification state for later

IJPL-183846: show the force choice dialog if IDE is started with an expired subscription

IJPL-182235 IDEA should start with paid plugins unloaded when no license is available [spring.data] -> [spring.el.contexts]

IJPL-184018 UI: Implement Subscription expiration dialog (force choice)

IJPL-182252: if the server returns any license that was active during the last 4 months, consider trial as not available

IJPL-182252: add getLicenses to JBAccountInfoService

Similar to getAvailableLicenses but includes licenses that have been expired for less than the specified expiredLicenseDays

Merge remote-tracking branch 'origin/master' into singleDistro252

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	build/expected/ultimate-content-platform.yaml

IJPL-182736: automatically open an editor tab on the first opening of the day when the trial state is EXPIRING

IJPL-182736: do not show the GotIt tooltip for EXPIRING trial state

IJPL-182736: add a separate content kind for the trial expiring today

IJPL-182252: perform trial availability check no more than once a day

IJPL-184020 Rename Register... to Manage subscriptions

IJPL-184020 Rename Register... to Manage subscriptions

IJPL-184020 Rename Register... to Manage subscriptions

IJPL-182235: load paid plugins when valid license is activated

Try to enable and load paid plugins without a restart. If there are plugins that cannot be loaded, do not enable these plugins. Show a notification suggesting enabling these plugins with a restart.

IJPL-182235: start IDE with paid plugins unloaded

- If this is a first start:
 - load all paid functionality if there is a license file
 - disable the Ultimate plugin and don't load plugins that depend on it if there's no license file in the config
- On later starts load in free mode if Ultimate plugin is disabled

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	community/platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.kt
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateService.kt
#	ultimate/min/resources/META-INF/plugin.xml

IJPL-184020 Rename Register... to Manage subscriptions

IJPL-184018 UI: Implement Subscription expiration dialog (force choice)

IJPL-184018 UI: Implement Subscription expiration dialog (force choice) - extract dialog

Merge remote-tracking branch 'origin/master' into singleDistro252

IJPL-183884: remove loading errors for plugins that were successfully loaded dynamically

Merge remote-tracking branch 'origin/master' into singleDistro252

IJPL-182740: open an editor tab when clicking the trial widget in the TRIAL_AVAILABLE state in IDEA

Add StartTrial action that can be referenced in the Vision file;
Add a sample Vision JSON: vision-trial-available.json for IDEA;
Keep the current behaviour in PyCharm: start trial on click instead of opening an editor tab.

IJPL-182740: add a trial widget got-it tooltip for TRIAL_AVAILABLE state

IJPL-182740: remove the trial widget button tooltip when the state is TRIAL_AVAILABLE

Don't show "0 days of trial left"

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateService.kt
#	ultimate/ultimate-resources/resources/META-INF/plugin.xml

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateService.kt

IJPL-176012 Trial widget: incorrect popup position

IJPL-183132 Trial widget: non customizable action

Revert "IJPL-176012 Trial widget: incorrect popup position"

This reverts commit e85f8ce81bf003c3be4e564b96e185e9d02e8223.

Merge remote-tracking branch 'origin/master' into singleDistro252

# Conflicts:
#	platform/trialPromotion/src/com/intellij/platform/trialPromotion/TrialStateService.kt

IJPL-176012 Trial widget: incorrect popup position

IJPL-182734 Widget: remove the Restart required state

IJPL-179915: don't suggest Ultimate plugin in Required plugins list

SID-132: Revert "temporarily bring back GeneralLicenseManager for IDEA (IJPL-179152)"

This reverts commit 71f2205b

SID-132: Revert "[trial] IJPL-179154: remove trial widget for IDEA"

This reverts commit f74bb96b

[license] update eua.html to 2.0 Legal-3233


Co-authored-by: Alexander Lobas <Alexander.Lobas@jetbrains.com>
Co-authored-by: Andrey Vokin <andrey.vokin@jetbrains.com>
Co-authored-by: Dmitriy Smirnov <Dmitriy.Smirnov@jetbrains.com>
Co-authored-by: Dmitry Yudin <Dmitry.Yudin@jetbrains.com>
Co-authored-by: Eugene Morozov <Eugene.Morozov@jetbrains.com>
Co-authored-by: Sergey Vasilyev <Sergey.Vasiliev@jetbrains.com>
Co-authored-by: Timur Aliberdov <Timur.Aliberdov@jetbrains.com>

Merge-request: IJ-MR-162974
Merged-by: Timur Aliberdov <Timur.Aliberdov@jetbrains.com>

GitOrigin-RevId: e2b4e7079c7de7f8ca046b9ddf8ed1de0215c5c2
2025-06-12 17:09:00 +00:00
Mikhail Pyltsin
8fa46f8969 [command-completion] IDEA-359174 disable JavaIntroduceVariableCommandProvider
GitOrigin-RevId: c26b22a24a635e8043895c110db69fdd56bc6178
2025-06-10 22:18:37 +00:00
Vladimir Dolzhenko
57d356652b Support multiple TestGenerators for the language
#IJPL-191211

GitOrigin-RevId: ea685881ffdb41961bd0ee57fe329fc06993a954
2025-06-10 19:51:11 +00:00
Maria Filippova
f49b6893a7 java: fix code style sync between FE and BE: add virtualFileCustomDataProvider
GitOrigin-RevId: 5f7f8041bb424127faf1614fcd98e4f0a0cf9bdc
2025-06-10 12:19:11 +00:00
Sergei Vorobyov
2fd5d32ae0 [DependencySubstitution] fix: delete bridge coordinate contributor
This coordinate contributor resolver library and module bridges. That gives negative performance impact on the dependency substitution.

### Issues
  * IDEA-370483 Maven performance degradation related to library dependency substitution

GitOrigin-RevId: d6dc66dd184b995432c49c52d3e69c6eba7567b3
2025-06-05 12:03:42 +00:00
Sergei Vorobyov
99c62682dc [DependencySubstitution] new: add maven-like coordinates for dependency substitution based on workspace model entities
These coordinates are expected to be used only for global library and module identification during the dependency substitution.

### Issues
  * IDEA-370483 Maven performance degradation related to library dependency substitution

GitOrigin-RevId: 27df0b5ad9b51ce22bf4a88c850591ab600cdaaf
2025-06-05 12:03:41 +00:00
Sergei Vorobyov
de512922b8 [DependencySubstitution] fix: migrate dependency substitution logic on the workspace model
The workspace model is more performant than legacy project model.

### Issues
  * IDEA-370483 Maven performance degradation related to library dependency substitution

### Tests
  * com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsWorkspacePerformanceTest

The performance test results on Mac M3

|    test params     | before (ms) | after (ms) |
|:------------------:|:-----------:|:----------:|
|     1, 1, 1, 1     |      1      |     0      |
| 100, 100, 100, 100 |     188     |     11     |
| 1000, 100, 100, 10 |     256     |     29     |

GitOrigin-RevId: 7bce84b9925d131035087351ff3edb75a00b3c29
2025-06-05 12:03:41 +00:00
Mikhail Pyltsin
dea7732836 [command-completion] IDEA-359174 support renaming after ')', '}'
GitOrigin-RevId: b4e58f9b2fe4f13c517c08f64df514641d4d2056
2025-06-04 07:38:18 +00:00
Egor Ushakov
db8da32e8c IDEA-369082 Remove registry java.exceptions.anniversary.banner
GitOrigin-RevId: 057e612093614cad4adc35d62ba64ca4323b6795
2025-06-02 16:31:42 +00:00
Pavel Porvatov
615edce517 IJPL-189107 Layout problems in ConsoleOptions and EP problems
GitOrigin-RevId: 8444bf9a438f6f27bc18997f094cedc065c721e4
2025-05-25 16:16:46 +00:00
Bart van Helvert
d1e0622170 [java] Migrate LanguageLevelProjectExtension to JavaRelease API
#IDEA-369013

GitOrigin-RevId: 6e31c3c0f8c8680641efbcd631fc11d60706507c
2025-05-22 17:00:06 +00:00
Louis Vignier
4bfba9c80e [java] Support the auto-run floating toolbar in remdev
#IDEA-365843 Fixed

GitOrigin-RevId: 632b97cdb34f31ab99c802d08094c863c3119fcd
2025-05-14 19:51:38 +00:00
Mikhail Pyltsin
ef450d5df0 [java] IJ-CR-162106 IDEA-360079 live templates for instance main methods in implicitly declared classes
- introduce psvma and maina instead of template

GitOrigin-RevId: baf47b932895fbf11a920509c51e8cb30c84c4ce
2025-05-13 17:29:36 +00:00
Mikhail Pyltsin
7f2652b15b [java] IJ-CR-162106 IDEA-360079 live templates for instance main methods in implicitly declared classes
- add tests
- add live variables
- fix scopes

GitOrigin-RevId: 413a9bef8fc62321dfc39ea5174d85f2003fb35a
2025-05-13 17:29:36 +00:00
Mikhail Pyltsin
b1cfbfa235 IJ-CR-162106 [java] IDEA-360079 live templates for instance main methods in implicitly declared classes
- add psvm for normal class, implicit class and normal class with instance 'main' method

GitOrigin-RevId: 46858978ef26162826e951e032d8eca4e85cac49
2025-05-09 14:12:08 +00:00
Mikhail Pyltsin
4552bec0d0 [java-completion] IDEA-360079 completion for args in main methods
GitOrigin-RevId: 853671b614c02c3851e4371d956631e375d0a116
2025-05-09 09:06:33 +00:00
Mikhail Pyltsin
b2368cb44b [java] IDEA-360079 add simple source file
GitOrigin-RevId: 16e846dabdf1235053f53ac95e5c0183e74ec3e0
2025-05-09 09:06:33 +00:00
Mikhail Pyltsin
ec18253a22 [java] IDEA-360079 live templates for instance main methods in implicitly declared classes
GitOrigin-RevId: 60f08b8d4575de163bcba438933cf146fdbcd020
2025-05-06 08:46:49 +00:00
Ruslan Cheremin
ad74c6be73 [indexes] IJPL-181002, IDEA-327594: re-designed input filtering for IdIndex
+ if `IdIndexer` (`IdIndex` sub-indexer) implements `FileTypeIndexingHint` -- it is used by `IdInputFilter` to customize input files filtering
+ this feature is used to re-implement `index.ids.from.java.sources.in.jar` (instead of extension points)
+ test for `JavaIdIndexer` filtering
+ adjust `IdIndex`: processes .class-files only conditionally

+ rename registry keys (unify naming):
+ `ide.index.id.skip.java.sources.in.libs`: enables/disables indexing of java sources in libraries (index .class-files instead)
+ `ide.index.trigram.enable.exclude.extensions`: enable/disable excluding of .java-sources in libraries from trigram index

GitOrigin-RevId: 8b8e40d621e01466854364c282d00a4731d5f4de
2025-05-03 21:06:35 +00:00
Ruslan Cheremin
a8938c42d0 [indexes] IJPL-181002, IDEA-327594: comments and TODOs
GitOrigin-RevId: 5704dcb47ac1ec33cbaebb710de1b277f790d521
2025-05-03 21:06:35 +00:00
Ruslan Cheremin
6455d3f8d9 [indexes] IJPL-181002, IDEA-327594: option to exclude '.java'-sources in libraries from IdIndex
+ make `IdIndex` input filter extendable with `ExtensionPoint`
+ Use extension point to exclude libraries `.java` from `IdIndex`, if `.class`-files parsing is enabled (`index.ids.from.java.sources.in.jar`)

GitOrigin-RevId: 736dce7ed09f58c632a005df82ff821b1e18c8d2
2025-05-03 21:06:35 +00:00
Ruslan Cheremin
814fd0db32 [indexes] IJPL-181002, IJPL-188: refactoring & preparation
+ extracting common `IndexFilterExcludingExtension` and `ExtensionCustomizableExcludes` helper to be used by both Id & Trigram indexes (and maybe others)
+ renaming and moving classes for mental clarity

GitOrigin-RevId: e01b712072e0453253495c263573672414619bdc
2025-05-03 21:06:35 +00:00
Nikolay Chashnikov
52ee8d5d0f [java] move classes in 'java.impl' inheriting from classes from 'java.analysis.impl' to a different package (IJPL-149126)
This is needed to avoid IllegalAccessError if 'java.impl' and 'java.analysis.impl' are loaded by different classloaders. For example, EntryPointsManagerImpl inherits from EntryPointsManagerBase, and an anonymous class inside EntryPointsManagerImpl refers to a protected field EntryPointsManagerBase.myWriteAnnotations. Since the anonymous doesn't inherit from EntryPointsManagerBase, such access works via package-private visibility because both classes are located in the same package and loaded by the same classloader. Moving EntryPointsManagerImpl to a different package forces javac to generate an accessor method in EntryPointsManagerImpl and use it from the anonymous class to access the protected field.

GitOrigin-RevId: 8c7b92c473f490f48f4226f0ed49339ef83cd4c3
2025-05-02 08:05:38 +00:00
Mikhail Pyltsin
8503aaa88a [command-completion] IDEA-371578 Command completion: add Go to super method/class
GitOrigin-RevId: e708527373462b1de92dfef2a4b1ae9eba67778b
2025-04-27 22:01:31 +00:00
Dmitry Batkovich
de7d4de1c0 IJPL-181799 execute java move up/down statement actions on FE in RD
GitOrigin-RevId: 5df74728054974e44f2664018c3535c16c24927d
2025-04-24 13:24:03 +00:00
Dmitry Batkovich
210b056678 java: IdeJavaFoldingBuilderBase on frontend (part of java folding builder which doesn't depend on resolve) IJPL-185110
GitOrigin-RevId: 1932afe8a0a18e0a475d047461bf5e158761e35a
2025-04-23 20:11:43 +00:00
Dmitry Batkovich
3f520e829a java: move soft-wrap calculation to shared module (allow to use it by editor on frontend) IJPL-185110
GitOrigin-RevId: a9912c146eb8394ebe0134cdf91374577e387bf1
2025-04-23 20:11:43 +00:00
Bart van Helvert
dd358bc239 [java] Set the highest released language level through the registry
This will allow changing the language level combobox through the cloud registry. #IDEA-369013 Fixed

GitOrigin-RevId: 1874b9aa5f617795a239f3941572318fc64f1b25
2025-04-22 13:32:02 +00:00