From 3e22a38dcabe261f9bd6d9dc80e3e2b9b6bef237 Mon Sep 17 00:00:00 2001 From: Erica Marigold Date: Mon, 9 Dec 2024 07:08:21 +0000 Subject: [PATCH] chore(bins): fetch and include READMEs for bins --- bins/argon/README.md | Bin 0 -> 1308 bytes bins/blink/README.md | Bin 0 -> 1976 bytes bins/darklua/README.md | Bin 0 -> 1492 bytes bins/luau-lsp/README.md | Bin 0 -> 4903 bytes bins/rojo/README.md | Bin 0 -> 2044 bytes bins/selene/README.md | Bin 0 -> 381 bytes bins/stylua/README.md | 304 ++++++++++++++++++++++++++++++++++++++++ bins/zap/README.md | Bin 0 -> 1533 bytes 8 files changed, 304 insertions(+) create mode 100644 bins/argon/README.md create mode 100644 bins/blink/README.md create mode 100644 bins/darklua/README.md create mode 100644 bins/luau-lsp/README.md create mode 100644 bins/rojo/README.md create mode 100644 bins/selene/README.md create mode 100644 bins/stylua/README.md create mode 100644 bins/zap/README.md diff --git a/bins/argon/README.md b/bins/argon/README.md new file mode 100644 index 0000000000000000000000000000000000000000..95db8a42ced92ad4069813b522ed0868346731db GIT binary patch literal 1308 zcma)+L2KJU5QTfzub7g9tAnk3a002@6hlf&9g>16WhITJtyeqh?#QzH>pLUK&BcX) z!S-tB?VIn-YFXL?7-uVgGb_+DhS_Zbu(VAj%X~At3l;ep#8BMS%x%2RvS9i}Wx4M1 zE@CK1syr_WYBHmn=OI5%zf6qCF>8$V~0+zr;@{a<1 zqukLEN<5&WwviK-S$>-=GckOdBv&vPOOoLWYy<->^%!=YgVn0vGUDi-3Fz3J9$U473{$01^0w1%rtqIqvFflx;?Ab1mBg6&R!S71X9}(Z>aB zM^{f9SW$^T-kr&f)Gner#6q^FVoPX7OJ4mb-}z2mmhJ?7Q2n6Z1}oa8@#Xonk=Uya z3j^GA#5R%Ma93J_)^(Nj6TS!me|J`c(M+5@AjFd|q}fH1Y^cG}48k5y=MdvRc-KiX zhsU1g&*n7L=@V^puuVcQfc24$gb<;Zky4^IC{t;aEk+S|-&t2G-YE)6%AW(xtvBHW z;_dtA2ldz())JH+WX@jLDJQAlX;S2k1DOs@FB<8AZG%$v@yG!i6w*Z(nHu}Yjo#r8v--y0?eWtMAIqJc5B4Ai^e79O>s}HHn>=iuOXc@M{Jz4a2 zZ(rhiS<6zn2H?;H4~3_LMhS6Y&z@rGM+T>-maCXa~G9MDq=Pu zcW!W(PWNaI+fT@_VHtib|6f}e#)`rztB_ejnaf#Pk&f{VbFZKV^CqW`r+c(rO_W}t zeFmBip|nnKrG_=$s_os^^+gfW+H9H;t-K$BX`%FrQMj*a<1368tBc{8qiTFprOBJW DO83u2 literal 0 HcmV?d00001 diff --git a/bins/blink/README.md b/bins/blink/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7196ebf0129db2a715c154efe700be78f19e7c41 GIT binary patch literal 1976 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 literal 0 HcmV?d00001 diff --git a/bins/rojo/README.md b/bins/rojo/README.md new file mode 100644 index 0000000000000000000000000000000000000000..046f5df24441d6eeed650136d6fc700ed29abff2 GIT binary patch literal 2044 zcma)7VNc^m5bbCGifK-5AtE*)RVQ5o)iu4IB5@QEdiMdLvbHDo!g|-;T_>c!zHiq~ z2o+Zq31NF@X5V}BW|)?8MMB9+pN$IEp6%#7A^c1Q)s~lMquTq{y~{FdOzK)u@aTLh zn~Iz*&PKvH_Abk<(B+@95f!^knaWIlJULBUU5!xNpN+1~gBelHva0cRdh&Ke+4(dR z=gBk!fb%4ohCkoy+_gXLfBJvWD(UMkPYcrk<%5~n{3$+UqVUpaw~u&B=c_quV;`5w ztX(#nXSpaVPTgut zIjb`j%K7h3k1Z<}jt6Zo;%9PfS8NHt4wU~JSrDo3WmcNvReAn}De4e|Cu`1~^gPLJ z=w@Y^^`1bX)AXw;x&~$vLH!++U0-X9?kCB39D>JVl8yv%x;C^H+HY_4HB*k3_7F*|ghZ!-C?w{cR1roc8g@s(fg!UpJcesq)q!H* z_2v!z#&Dx$*F)%qbMK%qeSw(+7o*7)R<<5eBf9~93QM173)EP6%c2R#_n6Y= z=|19#&-YtcQllli8v-EYDDtvlRJanwqX73RW|rJ4v)Ms{DIU0p3irkdOW~O(UYfvP z!5v95*FE_zh<6mdL2IcLnnJM;-b4`>8(jbeW?mOOs5aPg@B{F^lo2@JciuFZfI=v> zp~7g4rtfL-lXN~{4hjZ0gq?${2ZJJc-n0hM1snRelkWcVmDE?1QA%^_QlNI z9cS?MHwdz>Ce6KTefrgQ`T zu%>LfW*dv^hmA^R+2=vB9NV`HGZhr;*YY;Zg}Cq;#$;WxE-fJBqMI|C8}>dNFaPGU8&qq7evzn)7fA%>G5=kH3l;PJI73Ml618nhVWKf1#9E>p^17Z7tT^h?=LB>Xt(s zgm$7I(c#dO2WIOyDc&++5)DrHN)o{eQJk_zy~5vsZWPirrmx_X|aSfs+6L literal 0 HcmV?d00001 diff --git a/bins/stylua/README.md b/bins/stylua/README.md new file mode 100644 index 0000000..f65adbc --- /dev/null +++ b/bins/stylua/README.md @@ -0,0 +1,304 @@ +
+

+ StyLua
+ + + +

+
+ +A deterministic code formatter for Lua 5.1, 5.2, 5.3, 5.4, LuaJIT and [Luau](https://luau.org/), built using [full-moon](https://github.com/Kampfkarren/full-moon). +StyLua is inspired by the likes of [prettier](https://github.com/prettier/prettier), it parses your Lua codebase, and prints it back out from scratch, +enforcing a consistent code style. + +StyLua mainly follows the [Roblox Lua Style Guide](https://roblox.github.io/lua-style-guide/), with a few deviations. + +## Installation + +There are multiple ways to install StyLua: + +### With Github Releases + +Pre-built binaries are available on the [GitHub Releases Page](https://github.com/JohnnyMorganz/StyLua/releases). + +By default, these are built with **all syntax variants enabled (Lua 5.2, 5.3, 5.4, LuaJIT and Luau)**, to cover all possible codebases. +See [configuring runtime syntax selection](#configuring-runtime-syntax-selection) if you need to select a particular syntax of Lua to format. +Alternatively, see [installing from crates.io](#from-cratesio) on how to install a particular flavour of StyLua. + +### From Crates.io + +If you have [Rust](https://www.rust-lang.org/) installed, you can install StyLua using cargo. +By default, this builds for just Lua 5.1. +You can pass the `--features ` argument to add extra syntax variants: + +```sh +cargo install stylua +cargo install stylua --features lua52 +cargo install stylua --features lua53 +cargo install stylua --features lua54 +cargo install stylua --features luajit +cargo install stylua --features luau +``` + +You can specify multiple features at once, and then use [configuration in a `.stylua.toml` file](#configuring-runtime-syntax-selection) to defer syntax selection to runtime. + +### GitHub Actions + +The [stylua-action](https://github.com/marketplace/actions/stylua) GitHub Action can install and run StyLua. +This action uses the prebuilt GitHub release binaries, instead of running cargo install, for faster CI startup times. + +### pre-commit + +You can use StyLua with [pre-commit](https://pre-commit.com/). +There are 3 possible pre-commit hooks available: + +- `stylua`: installs via cargo - requires the Rust toolchain +- `stylua-system`: runs a `stylua` binary available on the PATH. The binary must be pre-installed +- `stylua-github`: automatically installs the relevant prebuilt binary from GitHub Releases + +Add the following to your `.pre-commit-config.yaml` file: + +```yaml +- repo: https://github.com/JohnnyMorganz/StyLua + rev: v2.0.2 + hooks: + - id: stylua # or stylua-system / stylua-github +``` + +### npm + +StyLua is available as a binary [published to npm](https://www.npmjs.com/package/@johnnymorganz/stylua-bin) as `@johnnymorganz/stylua-bin`. +This is a thin wrapper that installs the binary and makes it available through npm / npx. + +```sh +npx @johnnymorganz/stylua-bin --help +``` + +StyLua is also available as a WASM library at [@johnnymorganz/stylua](https://www.npmjs.com/package/@johnnymorganz/stylua). +It is usable in Node.js, or in the browser (using a bundler). + +### Docker + +StyLua is available on the [Docker Hub](https://hub.docker.com/r/johnnymorganz/stylua). + +If you are using Docker, the easiest way to install StyLua is: + +```dockerfile +COPY --from=JohnnyMorganz/StyLua:2.0.2 /stylua /usr/bin/stylua +``` + +### Homebrew + +StyLua is available on macOS via the [Homebrew](https://brew.sh) package manager. + +```sh +brew install stylua +``` + +### Other Installation Methods + +- [VSCode Extension](https://marketplace.visualstudio.com/items?itemName=JohnnyMorganz.stylua) +- [Aftman](https://github.com/LPGhatguy/aftman) + +```sh +aftman add johnnymorganz/stylua@2.0.2 +``` + +- A community maintained package repository. Please note, these packages are maintained by third-parties and we do not control their packaging manifests. + +[![Community Packages](https://repology.org/badge/vertical-allrepos/stylua.svg?header=Community%20Packages)](https://repology.org/project/stylua/versions) + +### Other Editor Integrations + +Note that these integrations require the StyLua binary to already be installed and available on your system. + +- Sublime: [Sublime Text Package](https://github.com/aerobounce/Sublime-Pretty-Lua) +- Neovim: [stylua-nvim](https://github.com/ckipp01/stylua-nvim) / [stylua.nvim](https://github.com/wesleimp/stylua.nvim) + +## Usage + +Once installed, pass the files to format to the CLI: + +```sh +stylua src/ foo.lua bar.lua +``` + +This command will format the `foo.lua` and `bar.lua` file, and search down the `src` directory to format any files within it. +StyLua can also read from stdin, by using `-` as the file name. + +### Glob Filtering + +By default, when searching through a directory, StyLua looks for all files matching the glob `**/*.lua` (or `**/*.luau` when `luau` is enabled) to format. +You can also specify an explicit glob pattern to match against when searching: + +```sh +stylua --glob '**/*.luau' -- src # format all files in src matching **/*.luau +stylua -g '*.lua' -g '!*.spec.lua' -- . # format all Lua files except test files ending with `.spec.lua` +``` + +Note that the `-g/--glob` argument can take multiple strings at once, so `--` is required to separate between the glob patterns and the files to format. + +By default, glob filtering (and `.styluaignore` files) are only applied during directory traversal and searching. +Files passed directly (e.g. `stylua foo.txt`) will override the glob / ignore and always be formatted. +To disable this behaviour, pass the `--respect-ignores` flag (`stylua --respect-ignores foo.txt`). + +### Filtering using `.styluaignore` + +You can create a `.styluaignore` file, with a format similar to `.gitignore`. +Any files matching the globs in the ignore file are ignored by StyLua. +For example, for a `.styluaignore` file with the following contents: + +``` +vendor/ +``` + +running `stylua .` will ignore the `vendor/` directory. + +### `--check`: Checking files for formatting + +To check whether files require formatting (but not write directly to them), use the `--check` flag. +It will take files as input, and output a diff to stdout instead of rewriting the file contents. +If there are any files that require formatting, StyLua will exit with status code 1. + +There are different styles of output available: + +- `--output-format=standard`: output a custom diff (default) +- `--output-format=unified`: output a unified diff, consumable by tools like `patch` or `delta` +- `--output-format=json`: output JSON representing the changes, useful for machine-readable output +- `--output-format=summary`: output a summary list of file paths that are incorrectly formatted + +### `--verify`: Verifying formatting output + +As a safety measure, you can use the `--verify` flag to verify the output of all formatting before saving the file. + +If enabled, the tool will re-parse the formatted output to verify if the AST is still valid (no syntax errors) and is similar to the input (possible semantic changes). + +This is useful when adopting StyLua in a large codebase, where it is difficult to manually check all formatting is correct. +Note that this may produce false positives and negatives - we recommend manual verification as well as running tests to confirm. + +### Ignoring parts of a file + +To skip formatting a particular part of a file, you can add `-- stylua: ignore` before it. +This is useful if there is a particular style you want to preseve for readability, e.g.: + +```lua +-- stylua: ignore +local matrix = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, +} +``` + +To skip a block of code, use `-- stylua: ignore start` and `-- stylua: ignore end`: + +```lua +local foo = true +-- stylua: ignore start +local bar = false +local baz = 0 +-- stylua: ignore end +local foobar = false +``` + +Note that ignoring cannot cross scope boundaries - once a block is exited, formatting is re-enabled. + +### Formatting Ranges + +To format a specific range within a file, use `--range-start ` and/or `--range-end `. +Both arguments are inclusive and optional - if an argument is not provided, the start/end of the file is used respectively. + +Only whole statements lying within the range are formatted. +If part of a statement falls outside the range, the statement is ignored. + +In editors, `Format Selection` is supported. + +### Requires Sorting + +StyLua has built-in support for sorting require statements. We group consecutive require statements into a single "block", +and then requires are sorted only within that block. Blocks of requires do not move around the file. + +StyLua only considers requires of the form `local NAME = require(EXPR)`, and sorts lexicographically based on `NAME`. +(StyLua can also sort Roblox services of the form `local NAME = game:GetService(EXPR)`) + +Requires sorting is off by default. To enable it, add the following to your `stylua.toml`: + +```toml +[sort_requires] +enabled = true +``` + +## Configuration + +StyLua has opinionated defaults, but also provides a few options that can be set per project. + +### Finding the configuration + +The CLI looks for a `stylua.toml` or `.stylua.toml` starting from the directory of the file being formatted. +It will keep searching upwards until it reaches the current directory where the tool was executed. +If not found, we search for an `.editorconfig` file, otherwise fall back to the default configuration. +This feature can be disabled using `--no-editorconfig`. +See [EditorConfig](https://editorconfig.org/) for more details. + +Use `--config-path ` to provide a custom path to the configuration. +If the file provided is not found/malformed, StyLua will exit with an error. + +By default, StyLua does not search further than the current directory. +Use `--search-parent-directories` to recursively search parent directories. +This will keep searching ancestors and, if not found, will then look in `$XDG_CONFIG_HOME` / `$XDG_CONFIG_HOME/stylua` / `$HOME/.config` and `$HOME/.config/stylua`. + +**Note: enabling searching outside of the current directory is NOT recommended due to possibilities of conflicting formatting:** + +It is recommended to keep a `.stylua.toml` file in your project root so that other developers can make use of the same configuration. + +If a project uses the default configuration of StyLua without a configuration file present, enabling external searching may cause conflicting formatting. + +### Configuring Runtime Syntax Selection + +By default, StyLua releases comes with all flavours of Lua bundled into one binary, with a union of all syntax styles. +We do this to make it easier to get started with StyLua on any codebase or project using Lua. + +However, there are times where the union of syntaxes collide, causing issues. For example, Lua 5.2's goto label syntax +(`::label::`) conflicts with Luau's type assertion syntax (`x :: number`), and the latter ends up taking priority. + +To disambiguate a particular syntax style for your codebase, set `syntax = "Style"` in your `.stylua.toml` file, e.g.: + +```toml +syntax = "Lua52" +``` + +Alternatively, you can specify it on the command line, with `stylua --syntax lua52 ...` + +### Options + +StyLua only offers the following options: + +| Option | Default | Description | +| ---------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `syntax` | `All` | Specify a disambiguation for the style of Lua syntax being formatted. Possible options: `All` (default), `Lua51`, `Lua52`, `Lua53`, `Lua54`, `LuaJIT`, `Luau` | +| `column_width` | `120` | Approximate line length for printing. Used as a guide for line wrapping - this is not a hard requirement: lines may fall under or over the limit. | +| `line_endings` | `Unix` | Line endings type. Possible options: `Unix` (LF) or `Windows` (CRLF) | +| `indent_type` | `Tabs` | Indent type. Possible options: `Tabs` or `Spaces` | +| `indent_width` | `4` | Character size of single indentation. If `indent_type` is set to `Tabs`, this option is used as a heuristic to determine column width only. | +| `quote_style` | `AutoPreferDouble` | Quote style for string literals. Possible options: `AutoPreferDouble`, `AutoPreferSingle`, `ForceDouble`, `ForceSingle`. `AutoPrefer` styles will prefer the specified quote style, but fall back to the alternative if it has fewer string escapes. `Force` styles always use the specified style regardless of escapes. | +| `call_parentheses` | `Always` | Whether parentheses should be applied on function calls with a single string/table argument. Possible options: `Always`, `NoSingleString`, `NoSingleTable`, `None`, `Input`. `Always` applies parentheses in all cases. `NoSingleString` omits parentheses on calls with a single string argument. Similarly, `NoSingleTable` omits parentheses on calls with a single table argument. `None` omits parentheses in both cases. Note: parentheses are still kept in situations where removal can lead to obscurity (e.g. `foo "bar".setup -> foo("bar").setup`, since the index is on the call result, not the string). `Input` removes all automation and preserves parentheses only if they were present in input code: consistency is not enforced. | +| `space_after_function_names` | `Never` | Specify whether to add a space between the function name and parentheses. Possible options: `Never`, `Definitions`, `Calls`, or `Always` | +| `collapse_simple_statement` | `Never` | Specify whether to collapse simple statements. Possible options: `Never`, `FunctionOnly`, `ConditionalOnly`, or `Always` | + +Default `stylua.toml`, note you do not need to explicitly specify each option if you want to use the defaults: + +```toml +syntax = "All" +column_width = 120 +line_endings = "Unix" +indent_type = "Tabs" +indent_width = 4 +quote_style = "AutoPreferDouble" +call_parentheses = "Always" +collapse_simple_statement = "Never" +space_after_function_names = "Never" + +[sort_requires] +enabled = false +``` + \ No newline at end of file diff --git a/bins/zap/README.md b/bins/zap/README.md new file mode 100644 index 0000000000000000000000000000000000000000..585d67aff6c623c2332f5affef022108eaed9b84 GIT binary patch literal 1533 zcmb7EU2oJn5WTPDR}An_R%&CoLP%WoR$N+;Dj`u_cz~{uaO_FqHnAgrY`Xke1CbIzQZQ*Cx62h-VqA1Stx{iCz$!D;{O>{?Ez0{_*iz@4+Ix}L}clGF_H zo3Y)nr&fkYmgDUFElw!7Aw}aXwa(N3t{L22T~&`C(_5A?c@9-|LdZ*#RJVb&jFOCv zj+)fA>;ugv_GBHo9s8c8uIXdX6y(UuWhE^&H~>&eA(xcYdZ|iL*HXmoMp``^9s7DM zrX2@+6iK;p@@_PN2@ogtKsidQxXzf4LP1q>T20AjjQI_m<9;$q4l85!r~@DiLBw@z z*&9V{mD32xh2Pvowwg7CG)>M&0=mK%xj1A7S~deClXt1>3-VRT9R3ypHV$HBMwb`w z2&Cx0tIOjeUunaQ+Y_Wq0r)Q?V6Y73WMJv-@sC$rI4TVsk~j4ob$qP3fy@q(1 zN;bg`wu2;41JW+ycvft7jQYhjKvHhXSl2kpK|ll~9tHra1ciO)O3#31_9lYs+#3{I ztJn3Vc!aqWE@Lg(ZI7E2XC)v2-o18@S%s45DH$d}q`1sRMSPBia+Tk!CCbDWKtTSD8C_0MpY zkc<)oci~hTA(G6KQB}XZ{wmEDjQ9WytZPV6Mi+?1rlu=rTATmF^PwFPNFa+8f62{V#HbJEjuojk%Ekj1{^Sux7 zmSX(1an8xk-8d#|;+`%L<-9)7$Z2p;cb#~%Q!j7y)!1Ec&>$e@Y*GqQVk+-97j(xa zS+-P$feFDN++m{uauMtYu(&XN=Q>v`38Uxd?95OAYOEwT()J^^8TRP`)K4yp%Qq2c z9^H)*(7O>M)+u`-L*N)h*mdIX7xGz+hfNt8R49&LlsP}A*PrQm{q#^kc`(5IK;jXK Y*UoohFj(t>gJ|{wm&JzGle+rrJANk