Commit Graph

306 Commits

Author SHA1 Message Date
Ryan Fleury ead193ee3b move enum value by-name lookup onto cached fastpath 2025-05-07 17:08:28 -07:00
Ryan Fleury 80f1a8b7ba enum value filtering / lookup cache 2025-05-07 15:46:59 -07:00
Ryan Fleury e7a4f407bb use 'sufficient suffixes' when generating enum expansions 2025-05-07 15:24:23 -07:00
Ryan Fleury 9c296cb9b2 fixes for arithmetic with bitfields; bitfield -> numeric value path in irtree generation; fix bad stomping / mutation when generating a synthetic UFCS tree 2025-05-07 14:19:39 -07:00
Ryan Fleury 1284c25b9e sketch out better usage of expansion info in text visualizer; notes; naming pass 2025-05-07 08:58:12 -07:00
Ryan Fleury 2919ecb135 more robustness to malformed expressions 2025-05-07 06:25:47 -07:00
Ryan Fleury 8d8e9b3cc5 be more judicious about edit buttons in fancy rows; allow escape-hatch identifier evaluation via grave accents 2025-05-06 15:42:36 -07:00
Ryan Fleury a6eda7db04 fix incorrect parsing / expr-building order of casts vs. other prefix unaries in new parser path 2025-05-06 13:02:48 -07:00
Ryan Fleury cf33470cb1 fix incorrect usage of type byte size for eval memory range sizes 2025-05-05 10:49:52 -07:00
Ryan Fleury c840071bf8 clean up visualizer default sizes, clean up rough edges of various combos of theme setting / config state 2025-05-05 09:54:29 -07:00
Ryan Fleury a96546c5f5 view rules / auto view rules -> views / type views 2025-05-02 09:50:41 -07:00
Ryan Fleury 2dbe8d42eb eliminate more old view settings code, simplify new, also clean up the targetless launch flow even more - if we only have one target, but it's inactive, and the user is trying to launch, then it doesn't hurt to just act as if that target was selected, then select it for them... 2025-05-01 17:04:29 -07:00
Ryan Fleury 36e77e9691 clean up flow of active-targetless launch path; instead of just erroring, prompt user with selection, select if none selected, etc. 2025-05-01 11:04:14 -07:00
Ryan Fleury 80268dd770 correctly evaluate array lens size arguments in the context of the parent expression 2025-05-01 10:16:41 -07:00
Ryan Fleury aa9a00f754 sketch out first pass of autocompletion list-expr/replace-range/filter based on cursor-offset -> expression-node path 2025-05-01 09:47:20 -07:00
Ryan Fleury 3a46e66efa expand eval expression tree location info to being based on textual range, rather than just offset 2025-05-01 09:05:42 -07:00
Ryan Fleury ed4fe5e3d1 fix auto-downcasting to work in all cases 2025-05-01 08:27:03 -07:00
Ryan Fleury b0dd7700d7 apply autocasting below the ir-tree generation level of lens calls, so that we don't accidentally strip away lenses 2025-04-30 17:04:10 -07:00
Ryan Fleury 78928974cb implicit member access path 2025-04-30 16:38:25 -07:00
Ryan Fleury 9ed65c2997 fix sizeof/typeof/bswap expr stringization 2025-04-30 13:42:43 -07:00
Ryan Fleury b1d63cd130 unattached process evaluation / lister 2025-04-30 13:34:05 -07:00
Ryan Fleury 10ff98faa8 fix type pattern matching for auto hooks, improve slice array indexing operations to rely less on the full irtree path (it composes poorly when using combining type views 2025-04-30 10:15:32 -07:00
Ryan Fleury f521e01d6e dynamic ternaries in ir tree evaluation, fixes to over-ambitious parsing of identifier qualifiers 2025-04-29 15:26:40 -07:00
Ryan Fleury 0a214fda3c dynamic type resolution in ir tree / type generation pass 2025-04-29 15:06:06 -07:00
Ryan Fleury 4cccc9cb42 proper cast parsing, elimninate chained casts entirely 2025-04-29 14:53:35 -07:00
Ryan Fleury d41b414f2a eliminate very-poorly-thought-through idea of 'chained casts' - we need to recognize cast operators in the parser somehow, otherwise we are using the expr chain for way too many things in many cases... 2025-04-29 14:29:42 -07:00
Ryan Fleury 195883cbcb stub single line expansion flag 2025-04-29 13:50:20 -07:00
Ryan Fleury 09372bd7c1 color visualizer / theme editing work 2025-04-29 12:15:41 -07:00
Ryan Fleury f4e2728e9c full evaluation expression string computation, use for expression drag/drop - resolve parent expression chain in order 2025-04-29 09:16:26 -07:00
Ryan Fleury bc67abe4ca fix block type extraction in row build; the block tree build resolves evals to whatever types it is using for expansion, but sometimes we need to see types which have been stripped for row building (e.g. tables) 2025-04-29 09:01:09 -07:00
Ryan Fleury dc15a4fdc5 fix busted chained dot-access-style views 2025-04-28 16:02:48 -07:00
Ryan Fleury f72c956c9f fix implicit parent/override member accesses 2025-04-28 15:41:32 -07:00
Ryan Fleury 9fdfc7fab9 eval: distinguish irtree 'parents' from 'overrides' - parents are any irtree which some other expression is extending, and overrides are a subset of those, being just the irtrees overridden by auto-hooks. doing this because when we unwind the parent chain, sometimes we do not want to do that for basic expression extensions - we just want to undo the overrides. 2025-04-28 15:37:30 -07:00
Ryan Fleury fff259e113 cache font setting calculations per-frame rather than recomputing all the time, fix some expandability calculations in eval visualization w/ multiple composing views 2025-04-28 14:04:02 -07:00
Ryan Fleury 0cdcb06db8 fix some edge cases in new casting compilation, fix some old usage of cast expr trees 2025-04-28 12:11:38 -07:00
Ryan Fleury c62ad20a9a switch cast expressions from being formally represented in the expression tree - instead use cast-like tree shapes to perform casts in the ir/typechecking phase. this is odd, given C's casting syntax, but it is much more natural given that the parser is not any longer doing identifier resolution, and as such it fixes a bunch of nasty edge cases. 2025-04-28 11:50:23 -07:00
Ryan Fleury 282f6022e1 begin color editing, fix some bugs with meta-type-info disrupting type chain scans 2025-04-26 17:30:34 -07:00
Ryan Fleury 2092f5ca69 eval space generation, to gracefully mark cached evaluations as dirty when desired 2025-04-26 12:33:48 -07:00
Ryan Fleury 09f248de59 cfg evaluation improvements, tab expression editing, window size serialization fix, other small fixes 2025-04-26 10:02:56 -07:00
Ryan Fleury d0cbaee344 prep watch windows for floating query stacks; fix member/array-index generated-expression visualization 2025-04-24 13:39:26 -07:00
Ryan Fleury a9685e6b9d pass through eval msgs appropriately in eval cache evaluations; fix rules for reverting to overridden IR trees on usage of 'raw'; more fixes/improvements 2025-04-24 13:04:32 -07:00
Ryan Fleury a35e483629 switch type expansion hooks to being eval-based, not expr/irtree-based 2025-04-24 09:36:00 -07:00
Ryan Fleury 9bb592786a eliminate all old evaluation bundled helpers, eliminate old fragmented eval caches; move all to unified evaluation cache 2025-04-24 09:07:29 -07:00
Ryan Fleury 2f7e48e5cf first pass at unified evaluation cache 2025-04-23 17:29:31 -07:00
Ryan Fleury ba29350939 parse cache, ir-tree cache 2025-04-23 16:00:23 -07:00
Ryan Fleury c9a05bc76f adjust block tree building from being on expr -> being on eval 2025-04-23 14:45:15 -07:00
Ryan Fleury a27b90a3f9 eliminate separate expr -> type path (this is just done via ir tree generation now), eliminate helper for locating defines & pushing to macro maps 2025-04-23 12:04:50 -07:00
Ryan Fleury c766ffe0a3 kill old code 2025-04-23 11:55:58 -07:00
Ryan Fleury 264dbc8199 deduplication from evaluation ctxs - just have base ctx with deduplicated info, then separate type-state, ir-ctx, and interpretation-ctx 2025-04-23 11:49:44 -07:00
Ryan Fleury 83e59bb0c0 fix incorrect resolution to type-mode evaluation with dereference ops 2025-04-21 16:57:27 -07:00