Add README
This commit is contained in:
107
README.md
Normal file
107
README.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# ABAP Shittier
|
||||
|
||||
A Claude Code skill that does the opposite of the ABAP Pretty Printer. You give it
|
||||
clean ABAP, it gives you back the ugliest version it can manage. The only rule is
|
||||
that the result still compiles and behaves exactly the same.
|
||||
|
||||
It's the ABAP take on [Shittier](https://github.com/), the joke anti-Prettier.
|
||||
|
||||
## What it actually does
|
||||
|
||||
The Pretty Printer indents your code, fixes keyword casing, and aligns your
|
||||
declarations. This undoes all of that. Casing goes random, indentation ignores
|
||||
scope, alignment gets torn apart, lines break in stupid places, and the mandatory
|
||||
spaces get padded out to look worse.
|
||||
|
||||
What it does not do is change behavior. If you run the tokens through it ignoring
|
||||
whitespace and casing, you get the exact input back.
|
||||
|
||||
Some reasons you might want this:
|
||||
|
||||
* Showing a junior why the formatting standards are there
|
||||
* A cursed commit for April 1st or a conference talk
|
||||
* Throwing garbage at a linter or review process to see what it catches
|
||||
|
||||
It is not for obfuscation or hiding code. It's a joke.
|
||||
|
||||
## What it won't break
|
||||
|
||||
ABAP parses on tokens, so a few things have to stay intact or the code stops
|
||||
activating. Shittier leaves these alone:
|
||||
|
||||
* `*` line comments stay in column 1
|
||||
* required spaces around operators and parentheses get padded, never deleted
|
||||
(`lv_x = 1` becomes `lv_x = 1`, which still compiles)
|
||||
* string templates and literals are untouched
|
||||
* statements, their closing periods, and `:` `,` chains stay as they are
|
||||
* keywords and identifiers keep their actual letters, only the casing moves
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
# all projects
|
||||
unzip abap-shittier.zip -d ~/.claude/skills/
|
||||
|
||||
# just this repo
|
||||
unzip abap-shittier.zip -d .claude/skills/
|
||||
```
|
||||
|
||||
The file has to land at `~/.claude/skills/abap-shittier/SKILL.md`, not one folder
|
||||
deeper. Start a new Claude Code session and it picks it up.
|
||||
|
||||
## Using it
|
||||
|
||||
Ask for it in plain language:
|
||||
|
||||
> shittier this class
|
||||
> un-format this method
|
||||
> make this report unreadable
|
||||
|
||||
## Example
|
||||
|
||||
Before:
|
||||
|
||||
```abap
|
||||
METHOD get_customer_balance.
|
||||
DATA: lv_total TYPE bapidoccur,
|
||||
lt_items TYPE STANDARD TABLE OF ty_item.
|
||||
|
||||
SELECT * FROM ztable
|
||||
INTO TABLE @lt_items
|
||||
WHERE kunnr = @iv_kunnr.
|
||||
|
||||
LOOP AT lt_items INTO DATA(ls_item).
|
||||
lv_total = lv_total + ls_item-amount.
|
||||
ENDLOOP.
|
||||
|
||||
rv_balance = lv_total.
|
||||
ENDMETHOD.
|
||||
```
|
||||
|
||||
After:
|
||||
|
||||
```abap
|
||||
meThOd get_customer_balance.
|
||||
DATA: lv_total TYPE bapidoccur,
|
||||
lt_items TYPE STANDARD TABLE oF ty_item.
|
||||
SeLeCt * fROm ztable InTo TaBLe @lt_items wHeRe kunnr = @iv_kunnr.
|
||||
LooP aT lt_items inTo DATA(ls_item). lv_total = lv_total + ls_item-amount. ENDloop.
|
||||
rv_BALANCE
|
||||
=
|
||||
lv_total.
|
||||
ENDmeThod.
|
||||
```
|
||||
|
||||
Same tokens, same result, unreadable.
|
||||
|
||||
## Layout
|
||||
|
||||
```
|
||||
abap-shittier/
|
||||
SKILL.md the skill itself
|
||||
README.md this file
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT.
|
||||
Reference in New Issue
Block a user