; Started this list on: (18.01.2016)(dd.mm.yyyy) ; This list is an informal todo list, it may very well miss items ; checked or unchecked, that I inted to do some day. It is included ; in the distribution so that you may take a look and see if your ; requested feature is there, and if not, so that you may remind me. ; Cheers everyone! ; BUGS ; [X] '\t' thing ; [X] smoothness in smoothscrolling isn't very smooth ; [X] examine ctrl left/right "stopspots" again ; [X] whitespace left/right ; [X] token left/right ; [X] white or token left/right ; [X] alphanumeric left/right ; [X] alphanumeric or camel left/right ; [X] jumping to top of buffer when invoking compiler ; [X] don't darken character with cursor ghost ; [X] only shows LOADED when all spelled out ; [X] cursor image is broken ; [X] special characters aren't colored correctly ; [X] screen does not always paint on open ; [X] unimportant flag for buffers so they don't ask to save ; [X] problem with clipping panel ; [X] paste highlight range is wrong ; [X] bug in new file interface ; [X] interactive open shouldn't be case sensitive (esp in windows) ; [X] REOPEN is still disabled! ; [X] lctrl + lalt = AltGr option ; [X] don't cursor ghost search highlights ; [X] auto indent stopped working (maps incorrect in one of the views?) ; [X] Assert(size + buffer->line_count < max) ; [X] unsigned ; [X] shift+backspace in interactive view is messed up ; [X] scrolls with mouse off window ; [X] file open same file/switch to file settings wrong ; [X] show whitespace isn't working ; [X] lexer in 4cpp_config.h ; [X] steady view in two panel editing of same file ; [X] offer error ; [X] switch to file "4ed.cpp" with "win32_4ed.cpp" open ; [X] inserting new line at top of file ~ scrolling jump when window is unaligned ; [X] saving/killing *compilation* doesn't work ; [X] line wrapping also doesn't work ; [X] save as corruptitates the filename ; [X] crash when leaving maximized mode and view get's weird ; [X] decrease scroll speed on short windows ; [X] different files, same live name, big ol' bug nest ; [X] can't open 4coder in arbitrary directory ; [X] shift tab ; [X] after auto indent always put cursor after whitespace ; [X] file menu non-ascii file names ; [X] strip \r in paste ; [X] page up scrolling stuff ; [X] stop spots for camel case aren't super ; [X] unmodified command then get's inserted in new view (z bug from hmh) ; [X] view_id always 1 bug ; [X] interactive kill not working ; [X] mouse not working on interactive view ; [X] reopen effects other view too? ; [X] allen's segfaults on linux launch ; [X] open empty file bug ; [X] chronal's map setting issue ; [X] linux save jankieness ; [X] bouncing when scrolling down ; [X] sometimes the main cursor is not the same width as the mark cursor in the same spot ; [X] tab character wrong width ; [X] miblo's off screen cursor thing ; [X] new file is messed up for code files, it never finishes parsing! ; [X] key presses that should be consumed in the GUI are now passed to the file! ; [X] paste snaps the cursor back into view! ; [X] clean whitespace doesn't appear to be cleaning trailing whitespace anymore??? ; [X] problem with end of line comments ; [X] paths with parens in them ; [X] killing compilation panel changes active panel ; [X] make panel resizing not whacky with child panels ; [X] visual studio file saves aren't picked up by the file track system ; [X] findstr format not quite working ; [X] over left-shifting the view? ; ; [] indication on failure to save ; [] history is broken, revist the entire system ; ; [] view fails to follow cursor when the view is shrunk ; [] view fails to follow cursor after deleting long line ; ; ; BEFORE I SHIP ; ; TODOS ; [X] success message when compiler works ; [X] auto-complete ; [X] detect word to match against ; [X] search in file range for next match and use if found ; [X] create repeatable tracker of previous match and files' searched ; [X] more options for getting buffer in custom API ; [X] write to buffer in custom API ; [X] querry buffer string in custom API ; [X] API for file views ; [X] Seek backwards option ; [X] Use range parameters in all applicable commands ; [X] generate enum for key codes ; [X] API for direct input ; [X] Seek string instead of delimiter ; [X] hook parameters ; [X] API based themes ; [X] improve file limit (now is > 8 million I think) ; [X] get key stroke in custom callback ; [X] tab option for auto-indent ; [X] catch unsaved files on close ; [X] feedback messages ; [X] feedback message API ; [X] kill rect ; [X] add high DPI support ; [X] error parsing and jump to error ; [X] manipulate scroll target API ; [X] generate documentation for custom API ; [X] flag in create buffer to prevent making new files ; [X] locking to a view for next position jumping ; [X] break down the build system and get away from the preproc hack ; [X] exit command ; [X] full screen option ; [X] add to APIs ; [X] try to make win32 version better ; [X] don't execute frames on events dealing only with ctrl/alt/shift ; [X] additional hooks ; [X] new file ; [X] hook on exit ; [X] file out of sync ; [X] mouse down/up distinction ; [X] case insensitive interactive switch buffer ; [X] expose dirty flags ; [X] why are command line files not loading any more? ; [X] use strange theme ; [X] cuber's return to previous buffer idea ; [X] find matches for current identifier ; [X] query buffer font info ; [X] issues with drive letters ; [X] ad hoc call for setting up/down keys for interactive screens ; [X] miblo's various number editors ; [X] eliminate the need for the lexer state's spare array. ; [X] fix buffer render item capacity issue ; [X] tab to complete folder names in the new file dialogue ; [X] API docs have duplicate ids? ; Token related upgrades ; [X] tokens in the custom API ; [X] token seeking on custom side ; [X] auto indent on the custom side ; [X] indent whole comments ; [X] inserting lines at end of block comment ; [] switch to line classification system ; [] more built in options for auto indenting ; Arbitrary wrap positions ; [X] allow for arbitrary wrap positions independent of view width ; [X] command for adjusting wrap positions in views ; [X] get horizontal scrolling to work in line wrap mode ; [X] word level wrapping ; [X] ability to toggle virtual white space ; [X] home/end should go to the beginning/end of the visual line not the textual line ; [X] code level wrapping level 1 ; [X] handle basic scope indents ; [X] handle parentheses ; [X] handle preprocessor ; [X] unify wrap rule parsing and indent rule parsing ; [X] handle square brackets ; [X] smarter wrap rule ; [X] handle unclosed statements ; [X] wrapped line indication ; [X] special indent rules in preprocessor body ; [X] handle comments ; [X] additional width for nesting? ; [X] fix issues when relexing happens in parallel ; [X] improve code display mode so that it can auto-indent the text on save ; [] command for setting wrap positions in views directly ; [] ability to see the wrap position as a number/line and adjust graphically ; [] code level wrapping level 2 ; [] comment lead whitespace problem ; [] remeasure version of measure_wraps ; [] code file outlining ; [] alternate code completion plan ; Buffer behavior cleanup ; [X] show all characters as \# if they can't be rendered ; [X] get the navigation working correctly around multi-glyph characters ; [] provide full cursor positioning in buffers ; [] provide cursor positioning system that does columns correctly ; [] unicode buffer mode ; [] binary buffer mode ; [] support full length unicode file names ; [] user file bar string ; [] option to not open *messages* every startup ; [] API docs as text file ; [] read only files ; [] option to hide hidden files ; [] control over how mouse effects panel focus ; [] option to break buffer name ties by adding parent directories instead of <#> ; [] undo groups ; [] cursor/scroll groups ; [] double binding warnings ; [] the "main_4coder" experiment ; [] real multi-line editing ; [] multi-cursor editing ; [] matching brace/paren/#if#endif highlighting ; [] word repetition highlighting ; [] simple text based project file ; [] system commands bound to in project file ; [] ability to save and reopen the window state ; [] introduce custom command line arguments ; [] control the file opening/start hook relationship better ; [] get keyboard state on launch ; [] never launch two 4coders unless special -R flag is used ; meta programming system ; [X] condense system into single meta compiler ; [X] formalize the documentation writer so the TOC can be better and so it's easier to shoot off other docs ; [] formalize the rewriter for the 4coder_string.h so it can be used for other single header libs ; [] profile and optimize the current metagen system ; [] expand the use of 4coder_types.h to also allow static variable and function declarations ; [] get more of the helper functions going through the documentation system ; [] method of virtually pulling the documentation line from another item rather than copy-pasting the text. ; ; GUI related tech ; [] scroll bar options ; [] buffer driven GUI experiment ; ; search related tech ; [X] replace word (incremental and/or in range) ; [X] caps insensitivety ; [X] improved custom API for text "streams" ; [X] wave search ; [] optimize search ; [] smarter isearch behavior ; [] cleanup word complete so it may be case-insensitive ; ; theme related business ; control schemes ; [] emacs style sub-maps ; [] vim keys ; [] sublime style editing ; [] command meta data ; [] macros ; ; code engine ; [X] lexer with multiple chunk input ; [X] more correct auto-indentation ; [X] switch over to gap buffer ; [] preprocessor ; [] AST generator ; ; "virtual text" ; [] line numbers ; [] macro expansion ; [] error text at line ; [] word complete ghosting ; [] fancy code presentation mode ; ; [] switch-case-enum based word complete ; [] keep copy of unedited orignal maybe? (compressed? restore by history?) ; ; [] diff ; [] cloc ; [] regex ; [] explicit panel layout ; [] polish for hot directories ; ; [] tutorials ; [] console emulator ; ; [] 10 GB text file ; ; INTERNAL TODOS ; [X] switch building non-extensible version by statically linking to custom.cpp ; [X] pack fonts more squarely ; [X] change job canceling to a polling based thing ; [] hashed string pool for clipboard/filenames/etc ; [] new profiling/debugging system ; [] new testing system ; ; EASY TODOS ; [X] better messages for example not "BEHIND OS" ; [X] shift backspace ; [X] center view on cursor ; [X] delta time in scroll interpolation ; [] panel grow/shrink commands ; ; HARD BUGS ; [X] reduce cpu consumption ; [X] repainting too slow for resize looks really dumb ; [X] fill screen right away ; [X] minimize and reopen problem (fixed by microsoft patch aparently) ; [] handling cursor in non-client part of window so it doesn't spaz ; ; [] a triangle rendered for a few frames? color of the dirty markers (not reproduced by me yet) ; ; ; PORTING TODOS ; [X] command line parameters ; [X] get command line arguments ; [X] user settings file name ; [X] custom DLL ; [X] window size and position / full screen ; [X] file(s) to open initially ; [X] position in file to open ; [X] transition Win32 layer to using system_shared stuff ; [X] event driven file synchronization ; [] user settings file ; [] system fonts ; [] file drag and drop ; [] low latency stuff ; [X] actually write the port ; [X] 4coder code compiling ; [X] opengl window up ; [X] basic versions of system functions ; [X] get 4coder to render to window ; [X] keyboard and mouse input (TY:insofaras) ; [X] file exchange (TY:insofaras) ; [X] clipboard (TY:insofaras) ; [X] background threads (TY:insofaras) ; [X] cli stuff (TY:insofaras) ; [X] event diven file synchronization (TY:insofaras) ; [] system fonts ; [] file drag and drop ; [] allow for multiple clipboards ; [] OS X port ; [X] 4coder code compiling ; [X] opengl window up ; [X] basic versions of system functions ; [X] get 4coder to render to window ; [] keyboard and mouse input ; [] file exchange ; [] clipboard ; [] background threads ; [] cli stuff ; [] event diven file synchronization ; [] system fonts ; [] file drag and drop ; [] allow for multiple clipboards ;