Age | Commit message (Collapse) | Author |
|
* 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.
|
|
|
|
Due to the recent changes in how Analysis API handles builtins, the update to the fresh version of Analysis API requires registering Kotlin stdlib in every testsuite.
|
|
* 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
|
|
|
|
Avoids the confusion when original 1.0 declarations can be thought of having since kotlin version 1.2 because their common documentation is shown on the first tab.
Common declaration are removed from documentation versions < 1.2 with a different approach - by not configuring a common source set.
|
|
* Introduce `extraOptions`
* Make 'SinceKotlin' option
* Display 'SinceKotlin' everywhere
* Dump API
* Fix CLI bug
* Show custom tags in property brief
* Show custom tags in extension brief
* Show `SinceKotlin` for TypeAlias
* Fix `stdlib.diff`
* Add a test
* Display doc for actual typealias
* Propagate SinceKotlin
* Refactor
* Refactor in `SinceKotlinTransformer`
* Revert "Introduce `extraOptions`"
This reverts commit b83fdf5da31a97e2ae037f46a735d34a2f84d2ec.
* Revert "Make 'SinceKotlin' option"
This reverts commit 69f4641d1776f3a4bcd361919212c2de7fa2364e.
* Introduce `dokka.SinceKotlin` system property instead of extra arg
* Fix API
* Fix tests
* Rename
* Spread on extensions
* Put doc and rename prop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* Annotations for parameters
* Annotations for parameters
|
|
|
|
* Parsing of JvmName
* Make JvmName processor run after KaJ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`Deprecated`. #944
|
|
|
|
|
|
|
|
Kotlin as Java. Refactor annotations creation from PSI/Descriptors. Add proper rendering of annotation signatures in both kotlin syntax and java syntax. Tests for annotations
|