KDoc-er - Kotlin Doc Generator downloads statistics
By Godwin Joseph (2 listings) · JetBrains Marketplace · Formatting
KDoc-er is a smart, lightweight KDoc generator for Kotlin in IntelliJ IDEA. It produces natural, readable documentation from your code — not boilerplate. A...
KDoc-er - Kotlin Doc Generator has 36,251 recorded downloads on JetBrains Marketplace.
It ranks #1541 of 2,500 tracked JetBrains Marketplace listings by downloads.
It is rated 4.9 out of 5 from 28 ratings.
PluginStats has 3 daily observations since Oct 16, 2026; the latest is from Oct 18, 2026.
Rating: 4.86 / 5 from 28 ratings
About KDoc-er - Kotlin Doc Generator
KDoc-er is a smart, lightweight KDoc generator for Kotlin in IntelliJ IDEA.
It produces natural, readable documentation from your code — not boilerplate. A template-driven NLP engine builds descriptions from declaration names, understands coroutines and Flow streams, resolves inferred return types, and recognises frameworks like Jetpack Compose, ViewModel, and LiveData.
Non-destructive by default — regenerating never overwrites your hand-written documentation. The merge engine preserves your summaries and tag text while filling in missing @param, @return, and other tags.
Customise everything per project via a .kdocer.yaml style sheet, or use the settings panel.
Features
Smart KDoc Generation
• NLP-aware descriptions — verb maps, word splitting, and pluralisation produce natural sentences (getUserById → "Gets the user by id.") instead of generic placeholders. • Inferred return types — expression-body functions (fun f() = expr) resolve the return type via the K2 Analysis API and emit a meaningful @return. • Smart @return descriptions — type-derived text like @return the user, @return the users (collections), or @return `true` if the condition holds (booleans). • Coroutine & stream awareness — suspend functions and Flow/StateFlow/SharedFlow/Deferred/Channel return types are documented automatically. • Framework detection — recognises Jetpack Compose, ViewModel, LiveData, data/sealed/enum/object/utility classes and adds tailored notes. • @throws detection — scans function bodies for throw expressions and emits @throws tags with the exception type. • @since version stamp — optionally appends @since <version> to every generated KDoc, with the version configurable per project. • @see cross-references — links override methods to their super declaration, and sealed subtypes to the parent type. • Usage examples — optionally appends a fenced code sample to function KDocs (e.g. val user = getUser(id)).
Non-Destructive Merge
Three policies for handling existing KDocs:
PolicyBehaviour
Merge (default)Keeps your summary and tag text, adds only missing tags, never drops user-only tags like @throws
KeepLeaves existing KDocs completely untouched
ReplaceRegenerates the entire comment from scratch
Multiple Ways to Generate
ActionWhereWhat it does
Type /** + EnterEditorGenerates KDoc for the element at the cursor
Create KDoc for ElementGenerate menu (Alt+Insert) / Code menuSingle-element generation
Create KDocs for All ElementsGenerate menu / Code menuDocuments every qualifying element in the file
Create KDocs in FolderRight-click folder in Project viewBatch-generates across all .kt files with progress bar
Remove KDoc for ElementCode menuRemoves the KDoc from the element at the cursor
Remove KDocs for All ElementsCode menu / right-clickRemoves every KDoc in the file
Missing KDoc Inspection
An inspection (enabled by default) gently suggests adding KDoc to undocumented declarations. Use Alt+Enter to generate the missing KDoc via the quick-fix.
Configure or disable it in Settings > Editor > Inspections > KDoc-er > Missing KDoc comment.
Project-Level Configuration
Create a .kdocer.yaml at the project root to override settings per project. Generate a starter file with every option commented out:
Tools > Create .kdocer.yaml Config (or right-click in the Project view > KDoc-er > Create .kdocer.yaml Config)
style: appendName: true # prepend a generated description sentence splitNames: true # split camelCase/snake_case into readable phrases frameworkAware: true # detect Compose / ViewModel / LiveData / data / sealed usageExample: false # append a fenced sample call to function KDocs includeConstructor: true # emit the @constructor line for classes existingKDoc: merge # merge | keep | replace throwsDetection: false # scan function bodies for throw and emit @throws sinceTag: false # stamp KDocs with @since <version> sinceVersion: "1.0.0" # version string for @since seeReferences: false # add @see for overrides and sealed subtypes verbMapping: # extend/override the verb -> phrase map fetch: "Fetches the {noun} from the remote source" sync: "Synchronises the {noun}"
aspects: notes: # override framework note wording compose: "Jetpack Compose UI for {name}." viewmodel: "Holds and exposes the UI state for the {name} screen."
templates: function: description: "{description}" param: "* @param {name} the {noun}" return: "* @return {description}" class: description: "{description}" constructor: "* @constructor {description}" property: description: "{description}"
Settings
All options are available under Settings > Tools > KDoc-er:
• Generate KDoc For — classes & objects, functions, properties • Visibility — public, protected, internal, private, overridden members • Description — prepend element name, split camelCase names, @constructor toggle • Framework Awareness — detect and annotate frameworks • @throws Detection — scan for throw expressions • @since Tag — stamp with a version string • @see Cross-References — link overrides and sealed subtypes • Usage Example — append sample call to function KDocs • Existing KDoc — Merge / Keep / Replace policy • Templates — override description and tag templates with {placeholder} tokens • Notifications — disable the occasional plugin notification
Customization Guide
Every part of the generated KDoc can be customized — from the description sentence to framework notes to tag templates. Configuration is resolved in order: .kdocer.yaml > IDE settings > built-in defaults.
Controlling Descriptions
By default, KDoc-er builds a description from the element name using NLP:
// Generated with defaults: /** * Http method */ enum class HttpMethod { ... }
OptionEffectYAMLSettings UI
Disable descriptionsRemoves the auto-generated description line entirelyappendName: falseUncheck "Prepend element name"
Keep camelCase as-isHttpMethod stays as HttpMethod instead of Http methodsplitNames: falseUncheck "Split class names"
How the NLP Description Engine Works…
Description from the JetBrains Marketplace listing.
- Formatting
Where KDoc-er - Kotlin Doc Generator sits in the listing
Each band is one page of 20. Downloads on a log scale. Placement is projected from downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (3)Similar JetBrains Marketplace Formatting plugins
Data source
Cumulative download counts come from the public JetBrains Marketplace API. JetBrains reports downloads, not active installs. Ratings are the mean of public votes.
Listing: https://plugins.jetbrains.com/plugin/14778-kdoc-er--kotlin-doc-generator. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.