Skip to content

andrew-malitchuk/yet-another-rapid-compose

Repository files navigation

img_logo_big_filled.png

YARC Plugin Version Rating

YARC

Overview

YARC - Yet Another Rapid Compose - build Jetpack Compose layouts effortlessly with an intelligent shorthand generator.

YARC is an Android Studio plugin that transforms concise abbreviations into full Jetpack Compose component trees instantly. Stop writing boilerplate — focus on the UI structure.

Heavily inspired by Emmet. Kudos to the creators for the brilliant syntax concept.

Demo

High-res demo.

Installation

Method 1: Marketplace (Recommended)

  1. Open Android Studio -> Settings/Preferences.
  2. Go to Plugins -> Marketplace.
  3. Search for "YARC".
  4. Click Install.

Method 2: Install from Disk (ZIP)

If you want to install a specific version manually:

  1. Download the latest yarc-x.x.x.zip from the Releases page.
  2. Open Settings/Preferences in Android Studio.
  3. Go to Plugins, click the Gear Icon (⚙️) in the top right.
  4. Select "Install Plugin from Disk...".
  5. Choose the downloaded ZIP file.

Features

  • Instant Expansion: Type short codes like col or row and expand them into valid Compose blocks.
  • Nested Layouts: Use / to define hierarchy in a single line (e.g., box/txt).

Usage

1. Basic Syntax

  • / (Child): Nest components inside each other.
  • * (Multiplication): Repeat an element N times.
  • , (Siblings): Place components side-by-side (at the same level).
  • ; (Step Up): Close the current container to add components to the parent.

TODO

Abbreviation Component
comp @Composable\nfun MyComponent() {\n%CONTENT%\n}
scfld Scaffold(modifier = Modifier) { /* innerPadding -> */\n%CONTENT%\n}
col Column(modifier = Modifier) {\n%CONTENT%\n}
clmn Column(modifier = Modifier) {\n%CONTENT%\n}
row Row(modifier = Modifier) {\n%CONTENT%\n}
box Box(modifier = Modifier) {\n%CONTENT%\n}
txt Text(%ARGUMENT%)
img Image(painter = , contentDescription = )
btn Button(onClick = {}) { Text(\"Click\") }
spcr Spacer(modifier = Modifier)

2. The Trigger

Type your abbreviation string and press the hotkey:

  • Windows/Linux: Ctrl + Alt + E
  • macOS: Cmd + Opt + E

3. Examples

Multiplication (*): Create 5 text elements in a row.

// Input
row / txt * 5

// Output
Row {
    Text(text = "")
    Text(text = "")
    // ... (3 more)
}

Siblings (,): Define elements at the same hierarchy level.

// Input
row / img, txt, btn

// Output
Row {
    Image(...)
    Text(...)
    Button(...) { }
}

Stepping Up (;): Use ; to exit the current container (Row) and continue adding to the parent (Column).

// Input
col / row / txt; btn

// Output
Column {
    Row {
        // Txt is inside Row
        Text(text = "")
    }
    // Btn is inside Column, but after Row (because of ;)
    Button(onClick = {}) { }
}

4. Custom Components

Need to use a component that isn't in the list? Just type its name! If YARC doesn't recognize an abbreviation, it treats it as a custom Composable function.

// Input
col / UserProfileCard

// Output
Column {
    UserProfileCard()
}

💡 Feedback & Feature Requests

Have an idea for a new feature or a missing abbreviation? Please open an issue to suggest improvements.

Troubleshooting

Encountering issues while using YARC? Check out the troubleshooting section for common problems
and solutions. If you still need assistance, feel free to reach out to the YARC community
for support.

Contributing

I welcome contributions from the community to help improve YARC. Whether you want to report a bug,
suggest a new feature, or submit a pull request, follow the contribution guidelines outlined in the
project's repository. Together, we can make YARC even better.

License

MIT License

Copyright (c) [2026] [Andrew Malitchuk]  
  
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

About

[YARC] Yet Another Rapid Compose - build Jetpack Compose layouts effortlessly with an intelligent shorthand generator.

Topics

Resources

License

Stars

49 stars

Watchers

0 watching

Forks

Contributors