Skip to content

Angry-Potato/prettier-plugin-kotlin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prettier Kotlin

🚧 Work in Progress! 🚧

Welcome to prettier-plugin-kotlin 👋

npm Documentation Maintenance License: MIT

prettier plugin for the Kotlin programming language.

How it works

A Prettier plugin must first parse the source code of the target language into a traversable data structure (Usually an Abstract Syntax Tree) and then print out that data structure in a "pretty" style.

Prettier-plugin-kotlin uses a Kotlin-Parser implemented in Kotlin, heavily based on Kastree.

Status

  • Parser alpha version done, it can parse most of Kotlin code. However, performance is an issue, and we still need to make some tweaks and improvements.
  • The printer is mostly done, it can output formatted code but needs to be improved on some cases.

Install

npm install

Getting started

Simply install prettier and prettier-plugin-kotlin as your project’s npm dependencies:

cd /path/to/project

## initialise an npm project if you haven’t done it yet
npm init
## or
yarn init

## add Prettier and its Kotlin plugin to project’s dev dependencies
npm install --dev prettier prettier-plugin-kotlin
## or
yarn add --dev prettier prettier-plugin-kotlin

Usage

## format all kotlin files in your project
./node_modules/.bin/prettier --write "**/*.kt"
## or
yarn prettier --write "**/*.kt"

Integration with editors

If you are using a text editor that supports Prettier integration (e.g. Atom), you can have all Prettier perks for your Kotlin code too!

Use of this plugin in VSCode extension seems to be blocked by prettier/prettier-vscode#395. Feel free to help!

In order to get prettier-plugin-kotlin working in projects that do not have local npm dependencies, you can install this plugin globally:

npm install --global prettier prettier-plugin-kotlin

In this case, you might need to check the settings of your editor’s Prettier extension to make sure that a globally installed Prettier is used when it is not found in project dependencies (i.e. package.json).

Nevertheless, it is recommended to rely on local copies of prettier and prettier-plugin-kotlin as this reduces the chance of formatting conflicts between project collaborators. This may happen if different global versions of Prettier or its Kotlin plugin are used.

Installing prettier-plugin-kotlin either locally or globally may require you to restart the editor if formatting does not work right away.

Known VSCode Issue

If you've managed to install prettier-plugin-kotlin and formatOnSave doesn't work, but right-clicking and selecting Format Document works fine, you need to increase the formatOnSaveTimeout.

You can do this by opening your settings window (Ctrl+,), and searching formatOnSave, then setting the value of formatOnSaveTimeout to 5000. This will be fixed as we improve performance of the plugin.

Author

👤 Liam Humphreys

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Credits

Special thanks to @cretz for creating Kastree.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2019 Liam Humphreys.
This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator

About

A prettier plugin for the Kotlin programming language

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •