Age | Commit message (Collapse) | Author |
|
Analysis API (#3227)
* Implement InheritanceBuilder and for symbols
* Enable tests for as-java and javadoc plugins and fix some
* Update the version of Analysis API and enable test
* Use assert from kotlin.test
* Rename `descriptorInheritanceBuilder`
* Fix after rebasing
* Mute test `two classes from different packages`
|
|
* Reorganize project model for MPP
We map Dokka's source set directly to a source module of Analysis API inside one Analysis Standalone session.
Analysis API session is created in src/main/kotlin/org/jetbrains/dokka/analysis/kotlin/symbols/plugin/KotlinAnalysis.kt (see fun createAnalysisSession)
Before the PR, one Dokka's source set corresponded to one Standalone API session with one source module that has source roots from dependent source sets.
* Add 'caffeine' dependency from Analysis API
* Fix sample provider
* Fix tests
* Enable tests and update the version of Analysis API.
The PR allows the enabling of some tests annotated with OnlyDescriptorsMPP.
Also, tests with OnlyDescriptorsMPP that have unresolved common symbols are fixed by the new version of Analysis API.
|
|
|
|
* Add the default copyright profile and enable IDEA project settings
* Add the license notice file
|
|
|
|
Dokka has its own documentable model to represent analyzed code. The analysis is performed by a compiler frontend.
In K1 the compiler frontend has descriptors that use the underlying Binding Context (global shared stateful structure). Dokka just maps descriptors to Documentable by DefaultDescriptorToDocumentableTranslator.
K2 compiler has FIR tree, which means “Frontend Intermediate Representation”, instead of Binding Context. But we do not use FIR in Dokka directly, since it is too low-level for analysis. The Kotlin compiler provides high-level Analysis API for this case. The API is used by KSP too. Analysis API represent elements of FIR (declarations, parameters and so on) as Symbols. For more details see KtSymbolByFirBuilder, KtSymbol.
For Dokka symbol is the replacement of descriptor in K2.
Also, to set up the environment of project analysis in K1 we use idea dependencies (or copy-past from there). In K2 for these aims, there is a Standalone mode for Analysis API.
|
|
|
|
|
|
|
|
* Extract analysis into separate modules
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Trim four spaces inside indented code block
* Fix test
|
|
|
|
|
|
|
|
Fixes #2509
Fixes #2551
Fixes #2350
|
|
Fixes #2548
|
|
* Fix gathering inherited properties in PSI
* Refacotr KaJ transformer. Change wrapping TagWrapper for getters and setters.
* Add logic to merge inherited properties in kotlin from java sources.
* Remove getters and setters from JvmField properties for DObject, DEnum, DInterface in KaJ.
* Unify InheritedMember DRI logic.
* Fix gathering docs obtained from inheriting java sources in descriptors
* Apply requested changes.
* Resolve rebase conflicts
* Use 221 for qodana analysis
* Move accessors generation into DefaultDescriptorToDocumentableTranslator
* Fix special "is" case for accessors and refactor logic in general
* Remove ambiguous import after rebasing
* Remove unused imports and format code
* Apply review comment suggestions
* Preserve previously lost accessor lookalikes
* Extract a variable and correct a typo
Co-authored-by: Andrzej Ratajczak <andrzej.ratajczak98@gmail.com>
|
|
* Enable warnings as errors and fix all warnings
* Enable skip-metadata-version-check compiler setting
|
|
* Make a default value dependent on source set
* Get a default value from an expect source set
* Fix default value for expect properties
* Deprecate `DefaultValue.value`
* Add test
* Refactor
* Reformat
|
|
|
|
|
|
* Fix resolving DRIs of Enum Entries
* Unify DRIs for Kotlin and Java enums. Add EnumEntry linking tests
* Updates EnumEntry extras in documentable translators
* Fix tests
* Apply requested changes
* Apply requested changes
|
|
* Introduce `documentedVisibilities` setting
* Remove hardcoded doc generation for Visibility.PUBLIC, correct tests
* Add maven, gradle and cli integration tests for documentedVisibilities
* Fix maven plugin configuration overriding the default value
* Remove test debug prints
* Correct an inconsistency with default values and leave a comment of intentions
* Add a test for visibility of private setter
|
|
|
|
|
|
|
|
* Add manual code highlighting
* Fix test
* Add kotlinAsJava highlighting
* Add runtime highlighting via Prism
* Add copy-button for code block
* Add tests and refactor
* Replace `<br>` for prism.js
* Parse trivial default values
Co-authored-by: Marcin Aman <marcin.aman@gmail.com>
|
|
|
|
* Multilanguage docs inheritance
* Add map to store inherit doc entries
|
|
* Bump compiler to 1.5.0
* Include Api changes
|
|
* Fix missing unresolved links in GFM
* Fix missing links to elements imported as static
|
|
|
|
|
|
* Annotations for parameters
* Annotations for parameters
|
|
|
|
* Parsing of JvmName
* Make JvmName processor run after KaJ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|