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
This validation has very limited support in the json plugin, it depends on the results of other validations, and must be applied only when IDE is really sure that the error exists. In case of complicated inherited schemas it should give up if any uncertainty occurs.
GitOrigin-RevId: 2ccc53306b27c114748d9a01ddedcd4636667bde
Unspecified type in the meta schema lead to treating many of the instance fields as either an object, or a boolean (as it is specified in the #meta schema node).
GitOrigin-RevId: 4c1441f161039eef502fd7e3e4b64295d04cffc3
- If requested, validation will stop as soon as any error is found. This is extremelly important performance optimisation that plays well with the recenty introduced if-else branch computation. The number of calls to JsonSchemaResolver.isCorrect() increased dramatically, even more json-schema subsystem refactoring was demanded.
The existing API didn't assume any kind of laziness or cancellability. The refactoring is performed in a way to cause minimal number of changes in code and API. It'd be great to rewrite the entire validation code to sequence/analogs once and drop complicated JsonAnnotationsCollectionMode
GitOrigin-RevId: 4e62f7db76ed6b4071accbe1b80151c4b4664342
Previously used asText() method always returns empty string for object nodes, which makes using the readChildNode(..) API inconvenient. Currently, we use pretty rendered string here
GitOrigin-RevId: 4c22553db897e371d6013f8dd8a7be2aa782c431