Commit Graph
28 Commits
Author SHA1 Message Date
Jonathan Kelley 4963aa3118 fix autofmt: don't panic when writing blocks out without a srcfile (#2854)
* fix: don't panic when writing blocks out
* also fix serialization for hotreload
* fix windows line endings
2024-08-16 21:55:30 -07:00
Jonathan Kelley c21b44a4e6 fix collapsing of multiline components and rsx!{} calls (#2849) 2024-08-15 17:03:58 -07:00
Jonathan Kelley 851abe82d5 Fix non-brace delimeters in nested macro formatting (#2831) 2024-08-13 22:47:43 -07:00
Jonathan Kelley 828cc502f1 Fix: #2604, Fix: #2240, Fix: #2341, Fix #1355 - Better error handling and and spaces handling in autofmt (#2736)
* add new autofmt sample
* Feat: implement rustfmt::skip support for rsx
* generally improve error handling with better expect messages
* wip: nested rsx formatting and expression formatting
* nested rsx formatting works
* collapse autofmt crate
* cast indent through macros
* use proper whitespace
* no more eating comments!
* Use proper error handling
2024-07-30 18:36:13 -07:00
Evan AlmloffandJonathan Kelley 7f210633eb fix formatting and merging if chains in attributes (#2697)
* fix formatting and merging if chains in attributes

* fix autoformat if attribute chains

* Fix IfAttributeValue ToTokens implementation

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-24 18:56:21 -07:00
Evan AlmloffandJonathan Kelley fa4e5dbf62 Fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished (#2656)
* fix rsx autocomplete and diagnostics in the root; provide better completions after attributes are finished

* clean up pr to use internal child parsing

* Fix peek_lowercase name

* fix comma diagnostics in the root

* Fix parsing components with a path

* remove simple routes trailing comma

* Fix incomplete_root_elements test

* Remove trailing commas from root body node in tests

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2024-07-23 16:34:50 -07:00
88af3e7eff Hotreloading of for/if/body, formatted strings, literals, component props, nested rsx, light CLI rewrite, cli TUI (#2258)
Hotreload the contents of for loops, if chains, component bodies, props, attributes, and any literals discovered in rsx!
Add a TUI renderer to the CLI.
Improve the CLI build system to be async and parallel.
Refactor RSX to allow partial expansion of expressions.
Merge autofmt implementations for consistency.
Merge the representation of elements and components under the hood.
Add a diagnostics system for rsx for improved error messages.
Drop interprocess and move to websockets for communication between the CLI and the server.
Assign IDs to nodes and attributes in a stable way to be used in non compiler contexts.
Add hotreloading to any body of component/for loop/if chain/etc.

---------

Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
Co-authored-by: Liam Mitchell <liamkarlmitchell@gmail.com>
2024-07-17 19:11:18 -07:00
Jonathan Kelley 994056e16d Don't eat keys (#2280) 2024-04-08 22:31:58 -07:00
Jonathan Kelley 67af2d89dd Autofmt nested rsx using syn::Visitor (#2279)
* Nested macros using visitor pattern
2024-04-08 22:15:52 -07:00
Jonathan Kelley be99e29e5f Fixes to autofmt, make it more aggressive (#2230)
* fix: fmt unterminated if, be more aggressive with line splits

* Fix: Handle long exprs in for/if statements
2024-04-03 15:27:36 -07:00
Jonathan Kelley eb79e61642 Add a ton of comments to rsx/hotreload, add snapshot testing, refactor a bit to simplify the crate (#2130)
Merge dynamic context and dynamic mapping, clean up the rsx hotreload logic, and add location data to the Rsx objects
2024-03-24 13:31:26 -07:00
Jonathan Kelley d8942a255b Fix #2104: fmt incorrectly using 1-indexing for columns (#2106)
* Fix #2104: fmt incorrectly using 1-indexing for columns

* Clippy...
2024-03-18 18:23:45 -07:00
Jonathan Kelley f1e8faffb5 fix tests 2024-01-10 23:17:01 -08:00
Jonathan Kelley fa9d92f956 Fix tests for autofmt 2024-01-10 22:41:40 -08:00
Jonathan Kelley d9b84f9f8f Disambiguate expressions in rsx by requiring curlies 2024-01-10 19:33:34 -08:00
Evan Almloff e5df83ceec Merge branch 'master' into pr/atty303/1349 2024-01-06 08:52:37 -06:00
Jonathan Kelley 8df7a7685e Merge branch 'master' into many_optional_attributes 2024-01-04 10:18:57 -08:00
Alex Parrill 52fb080193 Use indentation settings in dx fmt and vscode extension
Adds the ability to specify an indent string to public autofmt methods - either
a sequence of spaces or a tab character.

Get the indentation style and size from rustfmt for dx fmt, or from the editor
settings for the vscode extension.

Closes #1595
2023-11-01 17:24:18 -04:00
Evan Almloff 5b65c4cfb4 implement spreading props in the rsx macro 2023-09-22 10:04:34 -05:00
Evan Almloff d297e2baa2 Add optional attributes 2023-09-18 19:50:02 -05:00
Evan Almloff 8c47dfaf78 clean up attribute parsing 2023-09-14 14:08:39 -05:00
Evan Almloff d9e0b9a918 fix autoformatting raw strings 2023-06-02 12:03:56 -05:00
Jonathan Kelley 4e4e101eee fix: dont choke on emojji n exprs 2023-01-17 16:24:29 -08:00
Jonathan Kelley 3945928c59 fix: adjust padding on autofmt 2023-01-13 17:16:06 -08:00
Jonathan Kelley ac6035cb2a feat: parse entire file instead of hunting for verbtain 2023-01-13 16:46:34 -08:00
Jonathan Kelley bf559a6d06 fix clippy 2023-01-13 10:59:03 -08:00
Jonathan Kelley 6cd87796f2 feat: allow ifchains and for loops 2023-01-13 10:51:12 -08:00
Jonathan Kelley 1940855e39 feat: implement comments in zero children nodes 2023-01-10 17:47:58 -08:00