Commit Graph
454275 Commits
Author SHA1 Message Date
Anna Kozlova 64a375ccb2 [kotlin] fix copy reference on reference
^KTIJ-31304 fixed

GitOrigin-RevId: 1a94841d748ce97267b64b6d45cc3b432864329f
2024-09-13 18:47:06 +00:00
Anna Kozlova 5627cceb6a [kotlin] k2 generate tests: add command after popup chooser
^KTIJ-31310 fixed

GitOrigin-RevId: ef37b0f8f751a44391de3938c97c1f23df37cacc
2024-09-13 18:47:06 +00:00
Frederik Haselmeier 32c4ca8f81 [kotlin] Added logging to SetupKotlinJpsPluginBeforeCompileTask to log bundled JPS version
KTIJ-30704

GitOrigin-RevId: a07631a5f170a8b31a9d77b77fdef1a659529cfd
2024-09-13 18:11:50 +00:00
Frederik Haselmeier ae1d6d6f13 [kotlin] Ported IfThenToElvisInspection to K2
^KTIJ-31253 fixed

GitOrigin-RevId: 6ff07581bdaa730441325276fa01e1211234bb0b
2024-09-13 18:11:50 +00:00
Sergei Tachenov 8c43d7e67e IJPL-158493 Add new tree model support to Project View
Implement ProjectFileNodeUpdaterCoroutineInvoker and
CoroutineProjectViewSupport to bridge the existing implementation
of the Project View and the new tree model implementation.

Add the ide.project.view.coroutines registry key to be able
to enable the new implementation, but keep it disabled for now,
as the new implementation likely needs a lot of fixes and improvements.

GitOrigin-RevId: 532f1c18a0a48f34d4d07c474e9345f9ba4023ca
2024-09-13 17:27:32 +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
Sergei Tachenov b211b4adeb IJPL-158493 Extract a superclass from AsyncProjectViewSupport
To avoid duplicating a lot of logic in the new coroutine-based
implementation, extract the parts of AsyncProjectViewSupport
that don't depend on the models into a superclass.

Refactor the code around acceptAndUpdate a bit so
the only model-dependent part is now in this function
with a new signature, so it can be used in all places
where a similar logic was used.

Other than that, the code was mostly just moved.
The part about myNodeUpdater is a bit ugly,
as it's now initialized in the derived class and then
used in the base class in setupListeners.
It's OK, as it's an internal implementation class,
it won't have a lot of subclasses, so we're not forcing
anyone to figure out this ugliness before using it.

GitOrigin-RevId: a8d858c5c579a538a4c917cf830bc0704468f43d
2024-09-13 17:27:32 +00:00
Sergei Tachenov 8ee289751b IJPL-158493 Introduce ProjectFileNodeUpdaterInvoker
To reuse ProjectFileNodeUpdater for the new coroutine-based
Project View, we need to remove its direct dependency on the legacy
Invoker. Introduce a new abstraction layer, including only
the methods that are really needed.

Because the existing implementation relies on the invoker
as the parent Disposable, we must implement it in the new
interface as well, and ensure that our invoker is disposed
along with the delegate.

To remove the dependency in AsyncProjectViewSupport,
remove the invoke() call around roots.forEach. It's a safe thing to do
because the ProjectFileNodeUpdater itself only ever invokes
updateStructure in the same invoker, so that wrapping
was effectively a no-op.

GitOrigin-RevId: dd239b1330a2d8ef84f09e1dc5e3a49d79d8414c
2024-09-13 17:27:32 +00:00
Karol Lewandowski 2beb8da5c2 Rename ReadOrWriteActionInServiceInitializationInspection to PotentialDeadlockInServiceInitializationInspection
GitOrigin-RevId: bcf700c2c1a8c7afa9d3d257f010413e6a0e95fb
2024-09-13 17:25:06 +00:00
Karol Lewandowski 1897480db8 Handle invokeAndWait calls in ReadOrWriteActionInServiceInitializationInspection
GitOrigin-RevId: 6c60791465c54c3e8633dde5446797c1087730ab
2024-09-13 17:25:06 +00:00
Karol Lewandowski ed7196bf47 Improve messages in ReadOrWriteActionInServiceInitializationInspection
GitOrigin-RevId: 5d1dfb765163ebe5326da07dfc400131060dcd34
2024-09-13 17:25:06 +00:00
Dmitrii Denisov a3b5ae6cc2 AT-1032 [split-mode] Fix setAdvancedSetting
GitOrigin-RevId: 6c8ac9602c5a3326f12ded8074f5eb462d16264b
2024-09-13 17:10:06 +00:00
Alexey Kalina 5616563771 [evaluation-plugin] LME-99 Don't close popup in the report by clicking on it
GitOrigin-RevId: 47dc9d1581f54e4b133fe99a551c21855465a290
2024-09-13 17:05:22 +00:00
Vera Petrenkova 715bcbaee1 IJPL-161933 Untrusted Server's Certificate dialog: "signed by untrusted authority" warning message fix
GitOrigin-RevId: 6fad2cc3d23129340e60ebe3112a5b42eeb5a038
2024-09-13 17:00:46 +00:00
Vera Petrenkova 73ebfb987b IJPL-161937 Untrusted Server's Certificate dialog: disable trust button if there is no selected certificates
GitOrigin-RevId: b8a1472db27bddbd622fc8123a2b4558d5710bb3
2024-09-13 17:00:46 +00:00
Louis Vignier fd0d3ebfc7 [codeInsight] Select inspection profile for code cleanup on save
#IJPL-60378 Fixed

GitOrigin-RevId: aa2d004c7a62183c6a3763c0b493a13332522e24
2024-09-13 16:50:25 +00:00
Louis Vignier ddf360b575 [codeInsight] Add inspection profile choice in cleanupElements
#IJPL-60378

GitOrigin-RevId: 2cb258f986e9af02d13b8788a169f1b448990a52
2024-09-13 16:50:25 +00:00
Louis Vignier 9a8ea2afa5 [UI DSL] Add groupedTextListCellRenderer util
This makes it possible to use the new listCellRenderer with separators from Java code easily.

GitOrigin-RevId: d2320826c28cdd766b992d6262f05caaa561a21c
2024-09-13 16:50:25 +00:00
Louis Vignier 556f99ad92 [fus] Remove the download event in favor of jdk.downloaded
#FUS-4892

GitOrigin-RevId: 7743d59cded17d3e46fea731ed14f2eba5d4b19d
2024-09-13 16:50:25 +00:00
Louis Vignier 644968061a [jdk] NPE: SdkmanrcConfigurationProvider.getReleaseData
EA-1456877

GitOrigin-RevId: b81e7ae106c1584a429d797c95edfa9a752b5975
2024-09-13 16:50:25 +00:00
Louis Vignier 7e0e2a8a37 [javafx] Use UI DSL for JavaFxSettingsConfigurable
#IDEA-358971 Fixed

GitOrigin-RevId: 0856521e2c18391f37c691672aa29638da00b759
2024-09-13 16:50:25 +00:00
Bas Leijdekkers 5c06f74975 Java: don't report non-private field as assigned not accessed when it is implicitly read and written (IDEA-357404)
GitOrigin-RevId: 943ef6961c19510e5d4291367293424a87499487
2024-09-13 16:40:26 +00:00
Bas Leijdekkers 624ffd24a6 Java: cleanup in rename refactoring
GitOrigin-RevId: 0e3fda922844a73577d126a38f8d7f62a2ea7ffe
2024-09-13 16:40:26 +00:00
Aleksey Pivovarov 613a93d239 git: cleanup - use utility method
GitOrigin-RevId: 32134d8860f8e383c0eebe4ace3410c2f3eabc8d
2024-09-13 16:22:15 +00:00
Aleksey Pivovarov 8d27d59f3d IJPL-162101 git: fix syntax highlighting for 'Staging' content in diff
Make 'com.intellij.codeInsight.daemon.JavaProblemHighlightFilter' happy.

GitOrigin-RevId: 7dede624754b20296cd0e5496e2acb2937a13df3
2024-09-13 16:22:15 +00:00
Aleksey Pivovarov 9c82442089 IJPL-162101 git: fix syntax highlighting for 'Staging' content in diff
Make 'org.jetbrains.kotlin.idea.base.highlighting.KotlinHighlightingUtils.kt' happy.

GitOrigin-RevId: 3f45a6da1fa6cb1484d85831fec7a7a5f1f259d4
2024-09-13 16:22:15 +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
Maxim.Kolmakov b429ce5da8 Fix test expectations
GitOrigin-RevId: cfe665bb93d4d601c422e7455fd15067e986870c
2024-09-13 15:28:16 +00:00
Maxim.Kolmakov c6d31a553c Remove @HardwareAgentRequired annotation
All Perf Unit tests are run on the hardware agents to ensure stability of the metrics.
So the annotation is not needed anymore and it doesn't work on JUnit5 tests so the same test is run twice and since test execution time depends on the bucketing, metrics are jumping.

GitOrigin-RevId: fc83a368447d09d6ad1b269c88fe4f6c79067a91
2024-09-13 15:28:16 +00:00
Vladimir Krivosheev 187cb1ec16 simplify result handling for better error reporting
GitOrigin-RevId: 87ec05a525de5f2b7dd82a330d4fa6cf2459a43a
2024-09-13 14:49:14 +00:00
Adam Malek 406d8a8a67 ML in SE: Ensure disposal of test elements
GitOrigin-RevId: 2d8bea855482179c164ffeb1201ece9cc59609e7
2024-09-13 14:32:26 +00:00
Adam Malek eaa7d41df8 ML in SE: Catch exception when waiting for typing future fails
GitOrigin-RevId: ca9f3988c4b2d3291b8fabe65769b8e79af05409
2024-09-13 14:32:26 +00:00
Adam Malek d9e88fcc42 ML in SE: Optimise imports
GitOrigin-RevId: a404b45ea3063caf7a250d21de8e40dfa30146cf
2024-09-13 14:32:26 +00:00
Artem Ivanov 66fb06fcd9 PY-74171 Inherit PyKeywordArgument and PyReferenceExpression from PsiExternalReferenceHost
This allows using Symbol API to create references in PyKeywordArgument or PyReferenceExpression elements.

GitOrigin-RevId: 19545edec1499de66fb7744e7f8e3cb7f4ea85d3
2024-09-13 14:13:53 +00:00
Ilia Zakoulov f224638f0f PY-74171 MagicLiteralRenameHandler should not be invoked when it is not magic literal
GitOrigin-RevId: 9d2ce1958c09c8309331dc0bf7229af4b2cdb709
2024-09-13 14:13:53 +00:00
Alexander.Glukhov 8c8519cf8c [gradle][test][IDEA-359126] generate a Gradle Wrapper file in test with a linked project
The linked subproject should use exactly the same Gradle version as the main project.

GitOrigin-RevId: 78c2ce499a50e885be2e68b30251f9df93c0258a
2024-09-13 13:50:21 +00:00
Alexander.Glukhov 6c4b31c174 [gradle][test][IDEA-359161] disabled the test for the deprecated Gradle feature
GitOrigin-RevId: b3189ec783e7deb7a153d9e77f985376d94d09a7
2024-09-13 13:50:21 +00:00
Alexander.Glukhov 7773091d81 [gradle][test][IDEA-359126] fix deprecation warnings related to absent associated project dir
Gradle will warn if a project is added to the build where the associated projectDir does not exist or is not writable. Starting with version 9.0, Gradle will not run builds if a project directory is missing or read-only.

GitOrigin-RevId: cc34d50f0e02a7a30e041196fbc8e108a315450f
2024-09-13 13:50:21 +00:00
Alexander.Glukhov 7e7d15146a [gradle][test][IDEA-359126] added a way to provide custom Gradle VM Options into GradleImportingTestCase
GitOrigin-RevId: a18dddd878f6f3f822f7ab94902c44dda30b6218
2024-09-13 13:50:21 +00:00
vladislav.shishov ced38a59c2 [remote-driver] add SearchEveryWhereUiTest#testPopupResize
GitOrigin-RevId: c7e80734b753bc6d77c428fa2af4a84b1532d76b
2024-09-13 13:48:24 +00:00
Alexey Kudravtsev a67dd3c112 ignore usages in scripts in k2 (part of KTIJ-27513 K2 IDE: Slow reference search for specific symbols in unused symbol inspection)
GitOrigin-RevId: 1232ce359bcb0c2cd6f8f340607e63abba6683b9
2024-09-13 13:32:35 +00:00
Alexey Kudravtsev c654ebb284 cleanup
GitOrigin-RevId: 6f46365db86b8cebc53123835b81a8b8d8711441
2024-09-13 13:32:35 +00:00
Nikolay Chashnikov d85dc7ea61 [build scripts] automatically include required content modules in the main plugin JAR (IJPL-230)
Since content modules with 'loading=required' use the main plugin classloader (see IJPL-148565), we can safely include them in the main plugin jar even if they don't specify 'package' attribute. This way we can skip specifying custom PluginLayout for such plugins.

GitOrigin-RevId: 66163fa21f01f1de7d3b76269e5bd18bc3eb895c
2024-09-13 13:12:55 +00:00
Roman Shevchenko 795434cfb9 Cleanup (minor optimization; typos)
GitOrigin-RevId: 73f1c0baf16f876852c3735794b47710467a309b
2024-09-13 13:02:15 +00:00
Roman Shevchenko 733d9f6d91 [build scripts] making OpenSourceCommunityUpdateFromSourcesBuildTarget build full distribution (IJPL-116668)
GitOrigin-RevId: 77fb50c523e12db8b167a9498ec580630c307800
2024-09-13 13:02:15 +00:00
Roman Shevchenko bd36cd49cf [devkit] moving distribution directory checking to the correct place
GitOrigin-RevId: 53cf063da768f90d821473d367189001b1095aee
2024-09-13 13:02:15 +00:00
Ruslan Cheremin 27e5f0bb3a [vfs][refactoring] merge per-record and hierarchy locks in FSRecordsImpl into one lock
GitOrigin-RevId: 64b96629b6c8058191d74d0c049cec675788f39b
2024-09-13 12:55:56 +00:00
Tagir Valeev e40396352c [java-analysis] InferNullityAnnotationsAction: avoid storing myUi after the dialog is finished
Otherwise, resource leaks are possible through it.
Fixes IDEA-346071 com.intellij.codeInspection.inferNullity.InferNullityAnnotationsAction holds disposed ProjectImpl

GitOrigin-RevId: f84ae2575a8ef6d0f88fc3bde769d913ae664ac5
2024-09-13 12:32:50 +00:00
Vlad Koshkin 6a1be79f27 [kotlin] revert 'remove VFS refresh in ScriptConfigurationManager' commit
^KTIJ-31249 Fixed

GitOrigin-RevId: 6497d6483a0afc8bf05a6670304b4a504cf064d7
2024-09-13 12:25:25 +00:00