From 216c597df36db7575f3851a7621e6e04b549bffb Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Thu, 24 Mar 2016 11:00:13 -0400 Subject: [PATCH] a4.0.2 ready to go --- 4coder_custom.h | 2 +- 4coder_default.cpp | 10 +++-- README.txt | 14 ++++++- SUPERREADME.txt | 98 ++++++++++++++++++++++++++-------------------- TODO.txt | 28 +++++++------ 5 files changed, 90 insertions(+), 62 deletions(-) diff --git a/4coder_custom.h b/4coder_custom.h index 0379e8e4..145a4acf 100644 --- a/4coder_custom.h +++ b/4coder_custom.h @@ -385,7 +385,7 @@ struct Application_Links; #define GET_USER_INPUT_SIG(n) User_Input n(Application_Links *app, unsigned int get_type, unsigned int abort_type) #define GET_COMMAND_INPUT_SIG(n) User_Input n(Application_Links *app) -// Queries +// Queries and information display #define START_QUERY_BAR_SIG(n) int n(Application_Links *app, Query_Bar *bar, unsigned int flags) #define END_QUERY_BAR_SIG(n) void n(Application_Links *app, Query_Bar *bar, unsigned int flags) #define PRINT_MESSAGE_SIG(n) void n(Application_Links *app, char *string, int len) diff --git a/4coder_default.cpp b/4coder_default.cpp index e63b83fe..cbe77bdf 100644 --- a/4coder_default.cpp +++ b/4coder_default.cpp @@ -241,15 +241,17 @@ isearch(Application_Links *app, int start_reversed){ User_Input in; Query_Bar bar; + view = app->get_active_view(app); + buffer = app->get_buffer(app, view.locked_buffer_id); + + if (!buffer.exists) return; + if (app->start_query_bar(app, &bar, 0) == 0) return; Range match; int reverse = start_reversed; int pos; - - view = app->get_active_view(app); - buffer = app->get_buffer(app, view.buffer_id); - + pos = view.cursor.pos; match = make_range(pos, pos); diff --git a/README.txt b/README.txt index 9aa32203..551f1199 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -Distribution Date: 07.03.2016 (dd.mm.yyyy) +Distribution Date: 24.03.2016 (dd.mm.yyyy) Thank you for contributing to the 4coder project! @@ -27,6 +27,18 @@ if you start digging and pressing hard enough. INSTRUCTIONS FOR USE ----------------------------------------------------- +****Changes in 4.0.2**** +The previous file limit of 128 has been raised to something over 8 million. + +A *messages* buffer is now opened on launch to provide some information about + new features and messages will be posted there to report events sometimes. + +subst and link directories no longer confuse the system, it treats them as one file. + +on the command line: -f sets the font size, the default is 16 + +ctrl + e: centers the view on the cursor + ****Changes in 4.0.0**** alt + x: changed to arbitrary command (NOW WORKS ANYWHERE!) Opens a command prompt from which you can execute: diff --git a/SUPERREADME.txt b/SUPERREADME.txt index 9a2fd82a..982f9bd2 100644 --- a/SUPERREADME.txt +++ b/SUPERREADME.txt @@ -1,4 +1,4 @@ -Distribution Date: 07.03.2016 (dd.mm.yyyy) +Distribution Date: 24.03.2016 (dd.mm.yyyy) Thank you for contributing to the 4coder project! @@ -22,56 +22,24 @@ updates may deeply break your code. SOME DOCUMENTATION ------------------------------------- -See comments in 4coder_custom.cpp for more detailed information. +See comments in 4coder_default_bindings.cpp for more detailed information. Functions to implement (optional in the dll, but required if you are using buildsuper.bat): get_bindings -NEW IN 4.0.0: +NEW IN 4.0.2: ================ -File_View_Summary becomes View_Summary: -There use to be a lot of different view types and only "file views" were exposed in the API. -As of alpha 4 there are only views and you can always get a view. +#include "4coder_default.cpp" at the top of your own file to get a lot of the default functions +such as incremental search, various word boundry seeks, and so on. -Besides renaming the struct, there is also a change in the meaning of the "buffer_id" field. -A view can have a buffer attached, but not currently be looking at that file. +app->buffer_seek_string_insensitive(app, &buffer, start, str, len, seek_forward, &out); +Exactly the same as app->buffer_seek_string, but the matching rule is case insensitive -All of the following indicate the buffer associated with the view: -buffer_id -locked_buffer_id -hidden_buffer_id +app->get_command_input(app); +Returns a User_Input that represents the input event that triggered the current command. -These ids are nulled out to indicate that access at a particular level is not available. -buffer_id - -This is null if the file is not visible in the view OR if the view is locked. -A view is only locked right now for read only buffers (compilation output). - -locked_buffer_id - -This is null only if the file is not visible. - -hidden_buffer_id - -This is never null. - -In normal circumstances you can just use buffer_id and your code will automatically do -nothing when you try to edit a buffer you should not. - -If what you are writing is unusual and it SHOULD edit a buffer even if it is locked or -hidden, then you can use the other ids to get deeper access. - -================ -Theme changing API - -app->change_theme(app, name, len) -Set the theme to one of the prebuilt themes by name. - -app->change_font(app, name, len) -Set the font to one of the fonts by name (not by ttf file name, by the name in the list). - -app->set_theme_colors(app, colors, count) -Set colors of the current theme by tag color pairs. - -================ -The scrolling interpolation rule is now exposed in the API, and there is an example +app->print_message(app, str, len); +Put a string into the *message* buffer. OLD API DOC: ================================================================ @@ -204,6 +172,36 @@ the change in the buffer caused by this edit. The function returns 1 on success and 0 on failure. +================ +View_Summary: +There use to be a lot of different view types and only "file views" were exposed in the API. +As of alpha 4 there are only views and you can always get a view. + +Besides renaming the struct, there is also a change in the meaning of the "buffer_id" field. +A view can have a buffer attached, but not currently be looking at that file. + +All of the following indicate the buffer associated with the view: +buffer_id +locked_buffer_id +hidden_buffer_id + +These ids are nulled out to indicate that access at a particular level is not available. +buffer_id - +This is null if the file is not visible in the view OR if the view is locked. +A view is only locked right now for read only buffers (compilation output). + +locked_buffer_id - +This is null only if the file is not visible. + +hidden_buffer_id - +This is never null. + +In normal circumstances you can just use buffer_id and your code will automatically do +nothing when you try to edit a buffer you should not. + +If what you are writing is unusual and it SHOULD edit a buffer even if it is locked or +hidden, then you can use the other ids to get deeper access. + ================ app->get_view_first(app); app->get_view_next(app, &view); @@ -364,6 +362,20 @@ Returns 1 if it successfully started a query bar. app->end_query_bar(app, &bar); See start_query_bar for details. +================ +Theme changing API + +app->change_theme(app, name, len) +Set the theme to one of the prebuilt themes by name. + +app->change_font(app, name, len) +Set the font to one of the fonts by name (not by ttf file name, by the name in the list). + +app->set_theme_colors(app, colors, count) +Set colors of the current theme by tag color pairs. + + + Changes from 3.3 to 3.4: -exposed command word complete diff --git a/TODO.txt b/TODO.txt index d874f602..3aced75d 100644 --- a/TODO.txt +++ b/TODO.txt @@ -65,15 +65,13 @@ ; [X] allen's segfaults on linux launch ; [X] open empty file bug ; [X] chronal's map setting issue +; [X] linux save jankieness ; [] indication on failure to save ; [] clean whitespace doesn't appear to be cleaning trailing whitespace anymore??? ; [] sometimes the main cursor is not the same width as the mark cursor in the same spot ; [] tab character wrong width ; [] bouncing when scrolling down ; [] miblo's off screen cursor thing -; -; [] linux save jankieness -; ; ; @@ -103,16 +101,16 @@ ; ; [] file status in custom API ; [] user file bar string -; [] simple multi-line -; -; [] command meta data +; [] simple multi-line editing +; [] allow for arbitrary wrap positions independent of view width +; [] word level wrapping ~ temporary measure really want to have totally formatted code +; [] manipulate scroll starget API +; [] error parsing and jump to error ; [] additional hooks ; [X] new file ; [] file out of sync ; [] double binding warnings ; [] kill rect -; -; [] manipulate scroll starget API ; ; search related tech ; [X] replace word (incremental and/or in range) @@ -133,16 +131,20 @@ ; [] theme switch per panel? ; [] allow multiple font faces with effects ; -; [] control schemes +; control schemes ; [] emacs style sub-maps ; [] vim style modes ; [] "tap typing" ; [] "thin cursor" +; [] command meta data +; [] macros ; -; [] switch over to gap buffer +; code engine ; [] lexer with multiple chunk input -; -; [] macros +; [] switch over to gap buffer +; [] more correct auto-indentation +; [] preprocessor +; [] AST generator ; ; [] cuber's return to previous buffer idea ; [] miblo's various number editors @@ -156,7 +158,7 @@ ; [] polish for hot directories ; [] undo groups ; -; [] "virtual text" +; "virtual text" ; [] line numbers ; [] macro expansion ; [] error text at line