thinAir still is not working well - besides the incomplete iDE it often hangs , gets unresponsive (Should not run regex for code-structures while typing or exclude the current blocks , i.e. ignore
#Region "some region"

Function a(byval a_param) As result

' Start syntax  ignorance-mode maybe draw  Function above in Error-color 
' or place "missing matching end of block" right here, 
' skip syntax checks up to the matching closure of a surrounding block or 
' if none for the remaining lines of code from here.


   if some_code = here then 
     toDo =   highlight( keywords , only )
  end if

  if doing= fine then 
         while all(IsOK)
                let_this = current_line(of, input



#EndRegion
it detects prior to the current input position a #Region-Block - completed by #EndRegion that is already below the input position - here as the last valid block-structure
- function is not completed as "end function" is not present. Cursor is before the end of the completed surrounding #Region..#Endregion. thinAir should not permanent show like "end function expected" but maybe highlight keyword function in the function a(...)-line in Error-color and ignore any syntax until #EndRegion. the only check should be for matching parentheses and appear as something to complain about only when not editing the line. A hint at the statusbar like "(..(..[..(.|.)..)..]" to visualize the parens state
|= caret position green ok, red not ok or if monochrome + monospaced the here red could "blink" 300 ms parenthesis-char, 150 ms space-char, dots here might be just spaces, for a codeline that spreads across multiple lines a ~ could visualize the linebreaks.

Anyway i wanted to suggest to make use of DisableWindowGhosting-function (User.dll) to prevent thinair from getting the "not-responding"-status. For that it should supervise itself especially if entering possibly unlimited loops besides the mainloop and do syntax-checks only on return-key, editor lost focus, arrow keys/page up/down when before text was typed in and the caret encounters a different codeline
.
And always - without the need to ask users, frequently back up every few minutes what has been edited and is still opened in these few minutes. time-stamping should be enough and the guts to name an unnamed file just "by %USERNAME%_date/time.thinAir-autosave" in a subfolder of thinair
Especially if user starts new file and types in a lot it should realize after half an hour an unnamed new file exceeds 2 kb and continues typing thibasic-keywords , does many paste-actions: that user just has a run of input to his mind and can't stop . saving will distract him when asked and could break the flow..., better back up and keep him as a happy user even the unwanted should happen A tab where codebrowser and explorer reside that lists only autosaves and allows to preview and load a file without the need to rename it for its extension were nice. Not anywhere in tmp or users projectdir but thinbasic\thinair\autosave. the autosave options will fit to that tab too and a button "move to recycler" .not to load any guilt upon your shoulders
after an hour or so it made maybe 20,12,10,6 or 5 backups , keeping2 or 3 per hour, decide to additional keep files that are larger than a later created backup of the same file. for files that had been saved by the user under a name add previous to the scripts code some line that identifies source-folder if files are older than 3 days reduce the files stll to keep to only one per hour of each file.
increase inervals of reduction and reduce files to keep hat are 24 hours or older, after 3 days reduce to keep 1 file per hour, after a week only keep first and last of a day
After 3 weeks only keep the last of of a file per day etc..