It's been a while since the last update, sorry. I'm not sure about progress, but work has definitely occurred. A lot of work.
Recapping everything I've done is somewhere between impossible and pointless, so I will instead provide a high-level view of the past three weeks, which may explain how I ended up where I'm at now.
I would like to get this new version of .NETpad up on GitHub before it's fully baked so that anyone who is interested in this project can more easily follow along as I work on this major revision. To get to that point, I would (of course) like the code to be at some minimal level of quality. And so I've been using AI tools like GitHub Copilot and the Cursor AI editor to fix specific issues I have, and to examine the code base and provide suggestions. There have been a lot of suggestions, which is both good and bad. And I've spent more time than I care to remember just working on what I think of as architectural design; for example, whether it makes sense to use more C# classes to further modularize the code. In short, I've gone down so many rabbit holes, but I've also made some progress.
There are a few bugs in the code that were bothering me. And because this is such a massive project now, it was confusing figuring out where things were happening. I was always going to rewrite the app before posting it to GitHub, but starting with the public 3.0 code version was tiresome and introduced all kinds of issues of its own. And so I finally decided that I needed to rewrite the app from scratch, starting only with the code needed to display the basic user interface and add the first tab programmatically. And then I'd take it from there, working on adding and then removing tabs and keeping everything up-to-date. In a way, this app would start from the end, and would include basically just the new, tab-related code. All the normal app code to handle the menus, commands, find/replace, settings, and whatever else would wait until the tabs code was in a reasonably good place.
So here we go.
? It'll be just like starting over
I started with a blank new Visual Studio 2022 WPF project. And then I began blocking out the XAML bits the app would need by copying blocks from the current code base in a separate Visual Studio instance and pasting them into the new app's code. I removed all the XAML code referencing event handlers, so I could add those one-by-one as needed.
This looks simple enough in Visual Studio's XAML design view, but it's actually pretty complicated. It's all Grid-based, since that makes sense for this type of app. There is an outer grid with two rows, both Grids, one that's 32 DIPs (device independent pixels) tall for the tabs row, and one that contains the rest of the app UI. The bigger Grid consists of two columns, one for the main app body and one for the settings interface, which is hidden by default and not implemented here for now. The main app body Grid has four rows, for the Grid that contains...
With technology shaping our everyday lives, how could we not dig deeper?
Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.