# @emprespresso/codemirror-lang-tabloid [Tabloid](https://github.com/thesephist/tabloid) language support for [CodeMirror 6](https://codemirror.net/6/). ## About Tabloid Tabloid is the clickbait headline programming language created by Linus Lee. It features outrageous keywords like `DISCOVER HOW TO` (function declaration), `EXPERTS CLAIM` (variable assignment), and `PLEASE LIKE AND SUBSCRIBE` (required program terminator). ## Installation ```bash npm install @emprespresso/codemirror-lang-tabloid ``` ## Usage ```javascript import { EditorView, basicSetup } from 'codemirror' import { tabloid } from '@emprespresso/codemirror-lang-tabloid' const view = new EditorView({ extensions: [basicSetup, tabloid()], parent: document.querySelector('#editor') }) ``` ## Language Features ### Keywords - `DISCOVER HOW TO ... WITH ...` - Function declaration - `EXPERTS CLAIM ... TO BE ...` - Variable assignment - `RUMOR HAS IT ... END OF STORY` - Code block - `WHAT IF ... LIES! ...` - If/else statement - `SHOCKING DEVELOPMENT` - Return statement - `YOU WON'T WANT TO MISS` - Print statement - `LATEST NEWS ON` - Input statement - `PLEASE LIKE AND SUBSCRIBE` - Program terminator (required) ### Operators **Arithmetic:** - `PLUS` - Addition - `MINUS` - Subtraction - `TIMES` - Multiplication - `DIVIDED BY` - Division - `MODULO` - Modulo **Comparison:** - `IS ACTUALLY` - Equality - `BEATS` - Greater than - `SMALLER THAN` - Less than **Logical:** - `AND` - Logical AND - `OR` - Logical OR ### Literals - **Numbers:** `123`, `45.67` - **Strings:** `"hello"`, `'world'` - **Booleans:** `TOTALLY RIGHT` (true), `COMPLETELY WRONG` (false) ## Example Programs ### Hello World ```tabloid YOU WON'T WANT TO MISS 'Hello, World!' PLEASE LIKE AND SUBSCRIBE ``` ### Factorial ```tabloid DISCOVER HOW TO FACTORIAL WITH N RUMOR HAS IT WHAT IF N IS ACTUALLY 0 SHOCKING DEVELOPMENT 1 LIES! SHOCKING DEVELOPMENT N TIMES FACTORIAL OF N MINUS 1 END OF STORY EXPERTS CLAIM RESULT TO BE FACTORIAL OF 10 YOU WON'T WANT TO MISS 'Result is' YOU WON'T WANT TO MISS RESULT PLEASE LIKE AND SUBSCRIBE ``` ### Fibonacci ```tabloid DISCOVER HOW TO FIBONACCI WITH A, B, N RUMOR HAS IT WHAT IF N SMALLER THAN 1 SHOCKING DEVELOPMENT B LIES! RUMOR HAS IT YOU WON'T WANT TO MISS B SHOCKING DEVELOPMENT FIBONACCI OF B, A PLUS B, N MINUS 1 END OF STORY END OF STORY EXPERTS CLAIM LIMIT TO BE 10 YOU WON'T WANT TO MISS 'First 10 Fibonacci numbers' EXPERTS CLAIM NOTHING TO BE FIBONACCI OF 0, 1, LIMIT PLEASE LIKE AND SUBSCRIBE ``` ## Development ```bash # Install dependencies npm install # Build the parser npm run prepare # Run tests npm test ``` ## License MIT