- Prefer HashMap and HashSet over the Linked* collections to reduce overhead
- Prefer strict enum type in a map
- Run several test attempts to achieve more stable results
(cherry picked from commit 8254f2317efc10450adb40168f8159120aa87915)
IJ-CR-149952
GitOrigin-RevId: f8fde91b390057faa64ff4e8b40f9db67f9ac36e
The goal is to reduce both number of local and remote url resolve attempts
(cherry picked from commit 8b347c28c75b6241e2a15d2bf5d7ac509da6d178)
IJ-CR-149952
GitOrigin-RevId: eb13dd5f224091d7c73fec7a46b5d30248e1d49d
There is no point in traversing schema if there are no deprecated nodes specified in it. So we first index the in-memory schema instance and perform fast exit in case no deprecation keywords were detected
(cherry picked from commit decd0a968fa3e04326b4fdeec3cdab01563439fb)
IJ-CR-147983
GitOrigin-RevId: 2f816ec1c9867bf9b81f560524917d274705fc1a
Deprecated APIs which still have internal usage are marked as internal to ensure that new external usages won't appear.
GitOrigin-RevId: 8c49669e8cc5238cd2a0ef6632d0fa0aa559ce4b
If we could specify custom path for required content modules, we could include json.split into the monolith intellij.json plugin as well.
Currently we have to keep it in a separate jar to satisfy the test. It seems to make litle sense since no other plugin in monolith ide depends on json.split.
GitOrigin-RevId: 77362ce4de0957d941844003d69593c273269a68
- it allows to avoid duplicated registrations in different plugin descriptors
- it loads json.split module's classes with a main plugin classloader -> classes from the json.split module can be directly accessed from the main plugin module
GitOrigin-RevId: 052de488d023b25dd9362a62ae45232d292ded13
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
Historically, we store enum's string representation inside the json mappings state. In turn, the string is assembled from a message bundle line used in several places across the project. Changing this line broke the deserialization process.
To preserve backward compatibility, we intentionally continue using the same approach, but provide a converter capable of reading the schema version tag both in new and in old formats
GitOrigin-RevId: 8813740318ede3c9bc5656ee46c847059760e3c5
`BrowseFolderRunnable` and `*WithBrowseButton` family: getting rid of separate "title" and "description" parameters in favor of the chooser descriptor object, to avoid cloning the latter down the road.
GitOrigin-RevId: 33ec5968a1db953c60848974135055c288accf85
If you see any problems with your spellchecking strategy, please feel free to remove DumbAware from it. Or, you can make it dumb-aware by avoiding using indexes in dumb mode
The only strategies that are not DumbAware at the moment are:
- JavaSpellcheckingStrategy
- JSSpellCheckingStrategy
GitOrigin-RevId: 74781cf1ebd9b58669396bf7b1c03a839019f12b
- JSON becomes a true plugin instead of a bundled module.
- New plugin's ID is intentionally set equal to the old module name so that external dependent plugins would not face difficulties migrating to the new layout.
- All discovered internal plugins that implicitly depended on the JSON module currently unconditionally depend on the plugin.
- Consider extracting optional modules in a subset of affected plugins: spring.boot, intellij.yaml, intellij.java
- Consider testing the following IDEs that bundle JSON extension using xml:include: writerside, rider
- Refactor PlatformLangXmlPlugin to avoid api breakages
GitOrigin-RevId: 7d92b0c5905154c4f6f25d55f3246e79da79e278