- Properties-based settings (hackable!)
- Deals with missing properties
- Smart auto saving
- Highlight color customization
- Hot reload (Due to some limitations of Swing it's really hard to implement)
- Font customization
- Font size customization
- Text style customization
- Keymap customization
- Internationalization
- Settings UI
- File operations
- Create new file when no files are opened
- Save and sync
- Show in files
- Record recently opened files
- Create new files from templates (kts, kt, kt2js, android activity, multiplatform codes, etc.)
- Drag file to open
- Editor
- Multi-language support
- Undo and redo (by
javax.swing.undo.UndoManager.UndoManager
) - Copy/paste/cut/select all
- Line number
- Background image
- Insert/delete paired characters
- Highlighting strategy
- Highlight in daemon
- Prioritized
- Incremental
- Highlight selected token
- Completions based on tokens
- Kotlin
- Lexer based highlights
- Semantic-based highlights
- Java
- Lexer based highlights
- Semantic-based highlights
- Auto indent
- Smart indent
- Indent with spaces
- Plugin system
- Load plugins in classpath
- Official CovScript plugin
- Official Clojure plugin based on Clojure-Kit (deprecated)
- Official Clojure plugin based on la-clojuer
- Official Julia plugin
- Official JSON plugin
- Official Lua plugin based on EmmyLua
- Official Zig plugin
- Official Python plugin (too hard since PyCharm has used countless black magics)
- Official Groovy plugin
- Official Ruby plugin
- Official HTML plugin
- Official XML plugin
- Official CSS plugin
- Official Lice plugin
- Official Markdown plugin
- Official Scala plugin
- Build and run (Kotlin specific)
- Build
- Build as class files
- Build as jar
- Build as javascript module
- Run
- Run as class files
- Run as jar
- Run as kotlin script
- Build
- Others
- Open alternative editors' download page in browser
- MacOS toolbar support
- PsiViewer
- Memory indicator
- Built-in documentation