filled in new documentation for markers API

master
Allen Webster 2017-02-27 00:57:21 -05:00
parent c4358ab179
commit aa0d6cc7c7
3 changed files with 52 additions and 8 deletions

View File

@ -608,12 +608,23 @@ STRUCT Buffer_Summary{
GLOBAL_VAR Buffer_Summary null_buffer_summary = {0};
/*
DOC(A markers is a location in a buffer that, once placed, is effected by edits the same way characters are effected. In particular if an edit occurs in a location in the buffer before a marker, the marker is shifted forward or backward so that it remains on the same character.)
DOC_SEE(buffer_add_markers)
*/
STRUCT Marker{
/* DOC(The current position of the marker measure in absolute byte positioning coordinates.) */
int32_t pos;
/* DOC(When a marker is inside a range that gets edited, by default the marker 'leans_left' which means it goes to the beginning of the edited range. If the field lean_right is set to true, the marker will lean right with edits and will go to the end of edited range.*/
bool32 lean_right;
};
typedef void* Marker_Handle;
/*
DOC(A handle to an internally held array of markers.)
DOC_SEE(Marker)
DOC_SEE(buffer_add_markers)
*/
TYPEDEF void* Marker_Handle;
STRUCT i32_Rect{
int32_t x0;

View File

@ -655,7 +655,7 @@ static char**
get_current_code_extensions(int32_t *extension_count_out){
char **extension_list = default_extensions;
int32_t extension_count = ArrayCount(default_extensions);
if (treat_as_code_exts.extensions != 0){
if (treat_as_code_exts.extension_count != 0){
extension_list = treat_as_code_exts.extensions;
extension_count = treat_as_code_exts.extension_count;
}

View File

@ -665,8 +665,7 @@ DOC_PARAM(str_len, This parameter specifies the length of the str string.)
DOC_PARAM(edits, This parameter provides about the source string and destination range of each edit as an array.)
DOC_PARAM(edit_count, This parameter specifies the number of Buffer_Edit structs in edits.)
DOC_PARAM(type, This prameter specifies what type of batch edit to execute.)
DOC_RETURN(This call returns non-zero if the batch edit succeeds. This call can fail if the provided
buffer summary does not refer to an actual buffer in 4coder.)
DOC_RETURN(This call returns non-zero if the batch edit succeeds. This call can fail if the provided buffer summary does not refer to an actual buffer in 4coder.)
DOC(TODO)
DOC_SEE(Buffer_Edit)
DOC_SEE(Buffer_Batch_Edit_Type)
@ -703,7 +702,14 @@ DOC_SEE(Buffer_Batch_Edit_Type)
}
API_EXPORT Marker_Handle
Buffer_Add_Markers(Application_Links *app, Buffer_Summary *buffer, uint32_t marker_count){
Buffer_Add_Markers(Application_Links *app, Buffer_Summary *buffer, uint32_t marker_count)
/*
DOC_PARAM(buffer, The buffer on which to add the new markers.)
DOC_PARAM(marker_count, How many markers to be stored in the new marker array.)
DOC_RETURN(If this call succeeds it returns a handle to the new markers. If it fails it returns a null handle.)
DOC(This call makes an allocation of markers for the specified buffer. The newly allocated markers are not immediately activated. To activate a marker use buffer_set_markers to give the marker a value. The markers will remain allocated on the buffer until buffer_remove_markers is called or until the buffer is killed.)
DOC_SEE(Marker)
*/{
Command_Data *cmd = (Command_Data*)app->cmd_context;
Models *models = cmd->models;
Editing_File *file = imp_get_file(cmd, buffer);
@ -717,7 +723,17 @@ Buffer_Add_Markers(Application_Links *app, Buffer_Summary *buffer, uint32_t mark
}
API_EXPORT bool32
Buffer_Set_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker, uint32_t first_marker_index, uint32_t marker_count, Marker *source_markers){
Buffer_Set_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker, uint32_t first_marker_index, uint32_t marker_count, Marker *source_markers)
/*
DOC_PARAM(buffer, The buffer on which the specified markers are attached.)
DOC_PARAM(marker, The marker handle refering to the markers to be set.)
DOC_PARAM(first_marker_index, The index of the first marker to be set by this call.)
DOC_PARAM(marker_count, The number of markers to be set by this call.)
DOC_PARAM(source_markers, An array of marker_count Markers to specify the values to set to the markers specified.)
DOC_RETURN(On success returns non-zero, on failure returns zero.)
DOC(This call sets the value of a Marker, eliminating whatever value was there before. Any markers that are set become active if they were not active before. If a marker of lower index than first_marker_index was not active before this call, it will be cleared to zero and made active as well, so that all markers between 0 and first_marker_index + marker_count - 1 are active after this call. If first_marker_index + marker_count exceeds the originally allocated size of the marker array, this call will fail.)
DOC_SEE(Marker)
*/{
Command_Data *cmd = (Command_Data*)app->cmd_context;
Editing_File *file = imp_get_file(cmd, buffer);
@ -732,7 +748,17 @@ Buffer_Set_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle
}
API_EXPORT bool32
Buffer_Get_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker, uint32_t first_marker_index, uint32_t marker_count, Marker *markers_out){
Buffer_Get_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker, uint32_t first_marker_index, uint32_t marker_count, Marker *markers_out)
/*
DOC_PARAM(buffer, The buffer on which the specified markers are attached.)
DOC_PARAM(marker, The marker handle refering to the markers to be read.)
DOC_PARAM(first_marker_index, The index of the first marker to be read by this call.)
DOC_PARAM(marker_count, The number of markers to be read by this call.)
DOC_PARAM(markers_out, An array of marker_count Markers to be filled by the result of the read.)
DOC_RETURN(On success returns non-zero, on failure returns zero.)
DOC(When the range specified by first_marker_index and marker_count is a range of active markers in the array specified by the marker handle, this call succeeds and fills the markers_out buffer with the current values of the specified markers.)
DOC_SEE(Marker)
*/{
Command_Data *cmd = (Command_Data*)app->cmd_context;
Editing_File *file = imp_get_file(cmd, buffer);
@ -747,7 +773,14 @@ Buffer_Get_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle
}
API_EXPORT bool32
Buffer_Remove_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker){
Buffer_Remove_Markers(Application_Links *app, Buffer_Summary *buffer, Marker_Handle marker)
/*
DOC_PARAM(buffer, The buffer on which the specified markers are attached.)
DOC_PARAM(marker, The marker handle refering to the markers to be detached from the buffer.)
DOC_RETURN(On success returns non-zero, on failure returns zero.)
DOC(Deactivates the entire range of markers specified by the marker handle and frees the memory used to store the markers internally.)
DOC_SEE(buffer_add_markers)
*/{
Command_Data *cmd = (Command_Data*)app->cmd_context;
Models *models = cmd->models;
Editing_File *file = imp_get_file(cmd, buffer);