https://learn.microsoft.com/en-us/windows/win32/api/namedpipeapi/nf-namedpipeapi-peeknamedpipe
https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-readfile
https://github.com/sheredom/subprocess.h
https://github.com/4coder-archive/4coder/blob/master/platform_win32/win32_4ed.cpp :486

https://stackoverflow.com/questions/67551213/read-processs-stdout-output-in-win32-c-desktop-application
https://handmade.network/forums/t/1219-win32_asynchronous_pipes_question



- I guess you can just do color matching in rendering, have a table and try matching words etc.
- maybe I should disallow somehow taking pointers to dynamic array items? Just references!


- create process with buffer (append to end)
- create process and put it at specific cursor position in buffer?
- create process without buffer attached (maybe for error?) (we want some notification that it failed or something)

- code indexing: maybe we can do that line based since you want to jump to line not a particular place.
    - on edit we could reparse the line for symbol
    - I think 4coder first tries to offset the index file on immediate edit, on frame tick it tries to reparse the modified file in entirety
    - offseting things doesn't seem that hard since we already figured it out with cursors
    - would it be fast enough to just reparse the entire file of certain size every time?
- coloring seems even more hairy to do correctly because there are multiline comments etc.
- it honestly seems no matter what you do it's a very hairy problem, text was not meant for this

