I take notes in a .txt file every day. Each file is labled "2024-08-08", and broken into directory by year then another directory for month. Each month is written like: '01-January', '02-February', ... in order to ensure the folders are sorted how I want them. My notes as of "2024-08-08" are the following: (NOTE: github has markdown features and such for open and close square brackets but as I said I use a .txt file to track my notes, and I am literally copy and pasting my notes, albeit with tab replaced by "..." so markdown indents it.
2024-08-08
Round 1:
Started: 11:25 AM
Goal: 7:25 PM
Ended: ??:?? PM
NOTE: I program every single day, and always first thing create this block of text "Round 1..."
Preferably 8 hours every day is best. But, depending on my mood that day, I might get less, or more than 8 hours of work in.
In general I feel comfortable with the idea: "if you're having a bad day, just sit down, open the code, and give at least 1 hour. More often than not you will get a great deal done. Motivation is absurd; motivation begets motivation. The initial starting of a task is always painful. But it becomes worth it in time."
Common
[] Sorting options for the tabs (text editor in specific wants this feature)
[] Drag and drop move tab order.
[] If dropdown CANNOT fit onscreen, then provide a scrollbar.
[] Dialogs
....[] Minimum resize is solved easily by changing resize code from adding the difference in position, to capturing the initial position and only ever checking those two points for the duration of the resizing dragging.
....[] Enter key isn't closing the dialog when done with focus on the 'x' button
....[] Add ability to dock any dialog onto a panel group.
[] Count the amount of times the onfocusin events for ContextBoundary components are occurring.
[] TreeView
....[] Does tree view shift click select break for nodes that I've clicked on?
....[] Auto expand tree view nodes
....[] Auto collapse tree view nodes
[] Keybinds
....[] Any buttons which make to a command which has a keybind should have text that shows the keybind on the button (or on hover).
[] Panels
....[] Need intuitive keybind to unset the active panel tab
[] Rename 'luth_ide_section-body' from using the wording "section" to "panel"
[] Fix anywhere a Key.cs is string interpolated but it was implicitly ToString()'d instead of using the '.Guid' property.
[] Why are error notifications/dialogs no longer red?
[] ConfigureAwait(false) specifically in the background task service, what does this do (versus not having it)?
Text Editor
[] More consolidating of the blazor components related to text editor.
[] Sync find all and the find (in text editor)?
[] Vertical scrollbar move mouse to reset position 50% editor width not working it needs 100%?
[] Ctrl + Z something changes offscreen but I Don't scroll into view (think about accidentally hitting Ctrl + Z and not realizing, this would be infuriating)
[] After resize the text editor isn't updating (timing? this used to work)
[] Is the timing problem the effects?
[] When the editor fits in view, scroll wheel, you can see the bottom right connector between horizontal and vertical scrollbars it flickers, and then if there is a less opaque look to the connection then ull find that the vertical orientation of the mouse events is incorrect.
[] Within a small file select text with mouse and compare how it keeps up with the cursor or not as you move.
[] Bool to show TRAILING_whitespace
[] Cannot type first character non letter? (breaks line endings it seems)
....[] Type at start of file non letter not working
[] On mouse down cancel tooltip
[] If a text editor Model/ViewModel does initialize properly, make it obvious to the user
[] Protect against opening non text files. I opened a gif accidentally (or maybe it was markdown with a gif in it?). But it froze the IDE.
[] Drag and drop change order of tabs (make this change in the Common project to the shared tab code).
[] Do a better job of matching visual studio's keymap
[] If longest line contains a tab key, then the horizontal scrollbar will not render correctly.
[] Using 'Escape' key to exit the find overlay, does a javascript scroll to breaking virtualization.
[] Jump stack
[] Collapsible lines
[] Ctrl + mouse over draws underline, then onclick goto definition (where there exists an onclick).
[] Up and down arrow keymap should account for the width of a tab character, when determining the column on the next line that the cursor will move to.
[] "Find All"
....[] Add 'Word' boolean search option
....[] Add 'Match Case' boolean search option
....[] Tool should be autopopulated with the active selection (if there is one)
....[] Enter key should submit the form
[] When you delete text while the end of the document is in view, the height of the document is modified, and yet the scrollbar is not updated to reflect the changes.
[] Tree view enter key
....[] should set focus to the editor (it doesn't do it if the file is already part of the group)
....[] does the set focus bug, use preventScroll
[] Context menu crashes when trying to close it
[] Find (in text editor) does not work (when clicking the button in the ide header "Tools" dropdown)
[] When right clicking to get context menu, if the context menu is offscreen, a scroll into view on focus ends up breaking virtualization.
[] Showing dots for warnings/errors on scrollbar is super useful.
[] Finish the edit logic (undo for the other limit of history)
[] Fix dispatch text editor state cause re-render of all displayed editors, when it should just be the one that changed.
[] Horizontally if deleting line gets less long then bug virtualization
[] Two resource uri's as tabs in same group are not able to be told apart (without hovering for the full path)
[] Global find and replace
[] Find and replace in text editor
[] Is the context menu re-rendering whenever a file gets parsed by the initial solution wide parse?
[] Ctrl + Alt + DoubleClick => ExpandSelectionByCamelCase
[] Shift tab when \t\s\s where '\s' denotes 'space' what would happen (cursor is after the final '\s')
[] Two errors UI diagnostics can overlap entirely, this is bad.
[] Keybinds
....[] Finish these
........[] Alt + Up => move line up
........[] Alt + Down => move line down
........[] Ctrl + Alt + (ArrowLeft | ArrowRight) => move camel case
........[] F7 => Related Files quickpick
........[] Ctrl + Tab => Quick Pick file or context/tool
....[] Start these
........[] Home keybind
........[] No selection + { Shift + Tab } + Cursor positioned at or in the starting indentation should => IndentLess
........[] Ctrl + u and Ctrl + shift + u (to lowercase / to uppercase... verify that these are respectively correct)
....[] Fix these
........[] When inside a verbatim string and new line is pressed don't match indentation.
........[] Shift + Enter is putting the line ending in wrong spot see a mixture of LF and /r/n to see this
CompilerServices
[] Erroneously: The C# parser cannot parse a property identifier if the type does not match to an existing type in the binder.
[] Erroneously: The C# parser cannot goto definition on a type if there is a property with the same name
[] Move any .NET specific code to a .NET compiler service.
[] ICompilerService / the IBinder and etc... are not robust enough
....[] I cannot search for a type by name, it frustratingly MUST be done by providing a textspan from a text editor model.
....[] The frustration comes from the CSharpBinder internally tracking all the types (I think by their fully qualified name). I feel like the interface could easily support this considering the CSharpBinder (I think supports it already).
[] Don't escape character within a verbatim string
[] LSP (language server protocal)? I think LSP can be added while also having support for the customized ICompilerService and then one can choose between them. Because it isn't feasible for me to implement an ICompilerService to support every language. The reason I'm offput by LSP is due to an experience I had a few years back. Neovim didn't have any .razor support. The best you could do was set the filetype to be parsed as HTML. I haven't looked extensively into the issue, but I recall the Omnisharp maintainers said something like, "razor can't be supported because then you'd be running the C# server and a .razor server"? I can't recall the exact details of it. I still think LSP is a massive improvement to the IDE since it provides a breadth of language support. And like I said, preferably one could mix and match LSP for some languages and ICompilerService for others.
Ide
[] Git new branch not update active branch UI correctly?
[] Don't allow null working directory, it is unsafe. Always require the working directory to be specified.
....[] If working directory is null, throw an exception
[] Odd behavior difference between stoping startup control with the dropdown menu versus the 'x' button in the window manager when the app is running.
[] Does the observer for the CliWrap events wait for the previous event to finish being observed?
[] Custom file templates
[] The terminal is not guaranteed to initialize properly (probably the same issue as there is with the view models)
....[] Start it sometimes, general terminal is null, why?
[] StartupControl UI ViewTerminal dropdown menu option should set the active terminal to execution
[] Cut a project child directory paste did not delete source.
[] If I add another project, the solution wide parse task will be started again, while the previous one is still not finished, and going.
[] "Code Search" tool
....[] Should be autopopulated with the active text editor selection (if the active context upon keybind press is the text editor, and the text editor has a selection)
....[] Do not infinitely update contents, only do so if the text editor view model key changes.
[] On Windows the webview handles the keymap { Ctrl + r } by refreshing the "website". This is bad
[] The initial parsing of the solution, should not invoke 'ApplySyntaxHighlighting...spelling is probably wrong here'
[] Opening a file for the first time should invoke 'ApplySyntaxHighlighting...spelling is probably wrong here'
[] When changing the solution, clear the startup project.
[] Erroneously: If have a codebehind but no markup. To create a markup with 'create codebehind checkbox checked' will overwrite the existing codebehind.
[] If copy and paste file but file already exists at destination, the source still gets (erroneously) deleted.
....[] Followup: maybe it was because the file was the same name, and the TextEditorModel was out of date, and yet for some reason it wasn't prompting me to reload the file? I closed and re-opened the IDE and the file looks fine now.
[] Move Git folder out into its own Extensions project.
[] In code search, space should focus preview window
[] Terminal
....[] Would it be best to have the terminal command itself write out, and then ctrl shows that there is a link to click, which then shows the output of the command?
....[] Be 2 text editors
........[] A readonly text editor for the output
........[] A block text editor widget that renders a 1 line text editor at the final line of the readonly editor.
....[] Allow Ctrl + C to copy in terminal (or some other keybind but not exist current)
[] Does memory grow overtime?
Extensions.DotNet
[] Cancel test discovery?
[] Fix not having output window open then it won't do the tree view
[] .net cli
[] Test Explorer
....[] Distinguish between test discovery that had a build error, versus discovery that returned no results.
........[] Distinguish between no results due to not being xunit and no results (the output is different)
....[] Ability to stop a test
....[] Test explorer exception does not clear spinner
....[] (this error was happening when the running test was not the actively viewed one, I think) Test Explorer: Index was out of range. Must be non-negative and less than or equal to the size of the collection. (Parameter 'chunkLength') at System.Text.StringBuilder.ToString() at Luthetus.Extensions.DotNet.TestExplorers.Displays.Internals.TreeViewStringFragmentDisplay.BuildRenderTree(RenderTreeBuilder __builder) in C:\Users\hunte\Repos\RUN_Luthetus.Ide_Fork\Source\Lib\Extensions\Extensions.DotNet\TestExplorers\Displays\Internals\TreeViewStringFragmentDisplay.razor:line 11 at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
[] Output panel
....[] On click goto file, line, and column.
[] Solution Explorer
....[] Shift + Ctrl + Alt + 's' => recursively reveal the currently active text editor file.
....[] Add buttons to the solution explorer that map to the keybinds.
....[] Where does focus go after I delete a file?
....[] SolutionExplorer search bar?
........[] Maybe make a generic search bar for the tree view themselves?
....[] File nesting for codebehinds does not work for C# project immediate child files
[] Rename 'TreeViewCSharpProjectNugetPackageReferences' to 'TreeViewCSharpProjectNugetPackageReferenceList'
[] Rename 'TreeViewCSharpProjectToProjectReferences' to 'TreeViewCSharpProjectToProjectReferenceList'
[] If close SolutionExplorer tab, one cannot bring it back with the View dropdown (this used to work)
[] Cannot move a project out of a solution folder (i.e.: NO solution folder encompasses the project after the command is ran).
Extensions.Git
[] Move git code from the IDE project to a new project of this name
[] git cli
[] Set Git Repo dialog in bottom right can open infinitely many copies of itself at the same time if you keep clicking it.
Object reference not set to an instance of an object.
at Luthetus.Common.RazorLib.Menus.Displays.MenuDisplay.HandleOnKeyDownAsync(KeyboardEventArgs keyboardEventArgs) in C:\Users\hunte\Repos\Luthetus.Ide_Fork\Source\Lib\Common\Menus\Displays\MenuDisplay.razor.cs:line 164
at Microsoft.AspNetCore.Components.ComponentBase.CallStateHasChangedOnAsyncCompletion(Task task)
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
https://learn.microsoft.com/en-us/aspnet/core/blazor/performance?view=aspnetcore-8.0