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,282 recorded downloads on JetBrains Marketplace, a change of +0.1% over the past 7 days, ranking #1542 of 2,502 tracked listings.
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
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Ratings over time
Listing placement
Listing placement
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.
Each band is one page of 20. Downloads on a linear scale. Placement is projected from downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (8)Similar JetBrains Marketplace Formatting plugins
All 20 KDoc-er - Kotlin Doc Generator alternativesData 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 23, 2026. See the methodology.