a4.0.2 ready to go

This commit is contained in:
Allen Webster 2016-03-24 11:00:13 -04:00
parent fb57a515c9
commit 216c597df3
5 changed files with 90 additions and 62 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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 <N> 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:

View File

@ -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

View File

@ -65,6 +65,7 @@
; [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
@ -72,9 +73,6 @@
; [] bouncing when scrolling down
; [] miblo's off screen cursor thing
;
; [] linux save jankieness
;
;
;
; TODOS
@ -103,17 +101,17 @@
;
; [] 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)
; [] optimize search
@ -133,17 +131,21 @@
; [] 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"
;
; [] switch over to gap buffer
; [] lexer with multiple chunk input
;
; [] command meta data
; [] macros
;
; code engine
; [] lexer with multiple chunk input
; [] 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