Tags: cheesycod/lute
Tags
Tagged userdata headers (luau-lang#262) Closes luau-lang#261 by creating a `userdatas.h` header file under the Runtime folder, and switching the `Duration` and `Instant` userdatas to be tagged.
Ansi color battery improvements (luau-lang#257) * Rename to richterm, play on words with rich text and isn't vague * Reduce the size of the created closures via doing all of the formatting within a `format` function * Use `table.concat` instead of repeadedly using the concat operator (`table.concat` is faster) * Remove dependency on lutes process lib, and added a nocolor arg to every formatter that replicates this behavior. As its stated in the README that batteries aren't supposed to depend on lute. * Rename bright formatters to be gramatically correct ie `redBright` is now `brightRed` If the process lib is ever moved to the @std alias (it might already be under there idk), I'd expect there to be a pcall require situation to be added so that if the env variable for no color is set richterm respects it.
Update ansi.luau (luau-lang#160) - ansi.luau -> colorful.luau - NO_COLOR support - export Styler type - add `combine(...)`, looks like `combine(colorful.red, colorful.bold)("This is red bold text!")` - update to use string interpolation instead of concatenation in some places --------- Co-authored-by: ariel <aweiss@hey.com>
Fix query parsing in net.serve (luau-lang#246) Apparently I hadn't even really tested this because it was totally broken. It works now. I'm using string_views to avoid making a ton of extra string allocations, and then I'm using uWS's decoder for query so the URI component is automatically decoded for you. It's not perfect, but it should give the right result for now :) ``` local net = require("@lute/net") local pp = require("@batteries/pp") net.serve(function(req) return pp(req) end) ``` ``` ❯ curl "http://localhost:3000/world?foo=bar&baz=t%20az" { body = "", method = "GET", path = "/world", headers = { accept = "*/*", host = "localhost:3000", ["user-agent"] = "curl/8.7.1", }, query = { baz = "t az", foo = "bar", }, } ```
CST: Handle interpolated strings (luau-lang#239) This PR adds support for serializing interpolated strings. The structure of interpolated strings is a bit special compared to other nodes: we store the string literal parts and the expression parts independently. The visitor must account for this so that parts are visited in the correct order. We implement a special printer for interpolated strings, similar to how we've implemented it for other strings. We are guaranteed that an interpolated string starts and ends with a string literal (potentially empty), so the leading trivia of the first literal and trailing trivia of the last literal become the trivia for the overall interpolated string. Note that the characters `` ` `` , `{` and `}` are not stored anywhere as part of the CST. To ensure correct trivia attachment to tokens, we need to ensure that the end position of the string part is computed correctly. We manually increment current position to do this.
CST: Add initial support for types (luau-lang#231) This PR adds initial support for serializing types as part of the CST. This includes serializing type references, singleton strings and booleans, types wrapped in parentheses (type group) and typeof. We also serialize type alias statements (for now, excluding generics. We will introduce generic declarations in a follow up commit)
CST: Handle for loops (luau-lang#223) This PR extends the CST support to include all the necessary tokens in numeric (`for i = 1, 10, 2 do`) and for-in (`for ... in ... do`) loops. As mentioned previously, a future change will standardise the AST property names to switch away from using keywords
TLS on net.serve (luau-lang#213) Implements TLS on `net.serve` using `SSLApp`. `App` and `SSLApp` are unique templated classes. We can support both by storing them in a variant when required. ```luau type TLS = { cert_file_name: string, -- fullchain certificate file path key_file_name: string, -- key file path passphrase: string?, -- optional passphrase for cert and key ca_file_name: string?, -- optional certificate authority file path for mTLS, defaults to no mTLS } ``` Tested locally, seems to work as expected 😎 closes luau-lang#125
CST: Handle repeat, break and continue (luau-lang#210) This PR adds support for serializing all the the repeat stmt node, as well as `break` and `continue` last stmt For break and continue, it is fairly simple - we serialize the tokens directly. For repeat, we serialize the `repeat` and `until` tokens using the CST data, alongside the condition and body.
CST: Handle AstStatWhile (luau-lang#209) Serializes the full AstStatWhile node, including all its tokens `while` / `do` / `end`. At the moment, the keys are still keywords. In a follow up we intend to clean up the overall AST structure for standardisation
PreviousNext