parent
1dc78ce31a
commit
9a64f51e20
|
@ -626,9 +626,6 @@ DOC_SEE(buffer_add_markers)
|
||||||
*/
|
*/
|
||||||
TYPEDEF void* Marker_Handle;
|
TYPEDEF void* Marker_Handle;
|
||||||
|
|
||||||
/*
|
|
||||||
DOC(A four corner axis aligned rectangle, with integer coordinates.)
|
|
||||||
*/
|
|
||||||
STRUCT i32_Rect{
|
STRUCT i32_Rect{
|
||||||
int32_t x0;
|
int32_t x0;
|
||||||
int32_t y0;
|
int32_t y0;
|
||||||
|
@ -638,9 +635,6 @@ STRUCT i32_Rect{
|
||||||
|
|
||||||
GLOBAL_VAR i32_Rect null_i32_rect = {0};
|
GLOBAL_VAR i32_Rect null_i32_rect = {0};
|
||||||
|
|
||||||
/*
|
|
||||||
DOC(A four corner axis aligned rectangle, with floating point coordinates.)
|
|
||||||
*/
|
|
||||||
STRUCT f32_Rect{
|
STRUCT f32_Rect{
|
||||||
float x0;
|
float x0;
|
||||||
float y0;
|
float y0;
|
||||||
|
@ -830,12 +824,8 @@ TYPEDEF_FUNC int32_t Get_Binding_Data_Function(void *data, int32_t size);
|
||||||
#define GET_BINDING_DATA(name) int32_t name(void *data, int32_t size)
|
#define GET_BINDING_DATA(name) int32_t name(void *data, int32_t size)
|
||||||
|
|
||||||
// NOTE(allen): Definitions for the format that Get_Binding_Data uses to launch 4coder.
|
// NOTE(allen): Definitions for the format that Get_Binding_Data uses to launch 4coder.
|
||||||
// TODO(allen): Transition to a more dynamic Command_Map system.
|
// TODO(allen): Find a way to transition to a more dynamic Command_Map system.
|
||||||
|
|
||||||
/*
|
|
||||||
DOC(Values for the type field in the discriminated union Binding_Unit.)
|
|
||||||
DOC_SEE(Binding_Unit)
|
|
||||||
*/
|
|
||||||
ENUM(int32_t, Binding_Unit_Type){
|
ENUM(int32_t, Binding_Unit_Type){
|
||||||
unit_header,
|
unit_header,
|
||||||
unit_map_begin,
|
unit_map_begin,
|
||||||
|
@ -845,18 +835,12 @@ ENUM(int32_t, Binding_Unit_Type){
|
||||||
unit_hook
|
unit_hook
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
DOC(Values for built in command maps.)
|
|
||||||
*/
|
|
||||||
ENUM(int32_t, Map_ID){
|
ENUM(int32_t, Map_ID){
|
||||||
mapid_global = (1 << 24),
|
mapid_global = (1 << 24),
|
||||||
mapid_file,
|
mapid_file,
|
||||||
mapid_nomap
|
mapid_nomap
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
DOC(Describes a unit of information for setting up key bindings. A unit can set a key binding, switch the active map, set the inherited map, or set a hook.)
|
|
||||||
*/
|
|
||||||
STRUCT Binding_Unit{
|
STRUCT Binding_Unit{
|
||||||
Binding_Unit_Type type;
|
Binding_Unit_Type type;
|
||||||
UNION{
|
UNION{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#define MAJOR 4
|
#define MAJOR 4
|
||||||
#define MINOR 0
|
#define MINOR 0
|
||||||
#define PATCH 19
|
#define PATCH 20
|
||||||
|
|
||||||
// string
|
// string
|
||||||
#define VN__(a,b,c) #a"."#b"."#c
|
#define VN__(a,b,c) #a"."#b"."#c
|
||||||
|
|
|
@ -1095,19 +1095,13 @@ DOC_SEE(cpp_get_token)
|
||||||
}
|
}
|
||||||
|
|
||||||
API_EXPORT bool32
|
API_EXPORT bool32
|
||||||
Buffer_Send_End_Signal(Application_Links *app, Buffer_Summary *buffer)
|
Buffer_Send_End_Signal(Application_Links *app, Buffer_Summary *buffer){
|
||||||
/*
|
|
||||||
DOC_PARAM(buffer, The buffer to which to send the end signal.)
|
|
||||||
DOC_RETURN(Returns non-zero on success. This call can fail if the buffer doesn't exist.)
|
|
||||||
DOC(Whenever a buffer is killed an end signal is sent which triggers the end file hook. This call sends the end signal to the buffer without killing the buffer. This is useful in cases such as clearing a buffer and refilling it with new contents.)
|
|
||||||
*/{
|
|
||||||
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
Command_Data *cmd = (Command_Data*)app->cmd_context;
|
||||||
Models *models = cmd->models;
|
Models *models = cmd->models;
|
||||||
Editing_File *file = imp_get_file(cmd, buffer);
|
Editing_File *file = imp_get_file(cmd, buffer);
|
||||||
|
|
||||||
bool32 result = false;
|
bool32 result = false;
|
||||||
if (file != 0){
|
if (file != 0){
|
||||||
result = true;
|
|
||||||
Open_File_Hook_Function *hook_end_file = models->hook_end_file;
|
Open_File_Hook_Function *hook_end_file = models->hook_end_file;
|
||||||
if (hook_end_file != 0){
|
if (hook_end_file != 0){
|
||||||
hook_end_file(app, file->id.id);
|
hook_end_file(app, file->id.id);
|
||||||
|
|
BIN
4ed_site.ctm
BIN
4ed_site.ctm
Binary file not shown.
|
@ -3,7 +3,7 @@
|
||||||
\IMAGE{image:4coder_logo}{width:200}
|
\IMAGE{image:4coder_logo}{width:200}
|
||||||
\END_LINK
|
\END_LINK
|
||||||
|
|
||||||
This page provides a list of 4coder features for anyone trying to determine whether 4coder is the right editor for them. To find a complete list of every default key binding visit \BEGIN_LINK{document:bindings} binding list \END_LINK. If a feature is missing here you should check out the \BEGIN_LINK{document:roadmap} roadmap \END_LINK page to see what is coming in the future. If the feature you want is on neither, it might be missing from this list, or it might actually be missing from 4coder, you should contact \BEGIN_STYLE{code} editor@4coder.net \END_STYLE to ask questions and make requests.
|
This page provides a list of 4coder features for anyone trying to determine whether 4coder is the right editor for them. To find a complete list of every default key binding visit \BEGIN_LINK{document:bindings} binding list \END_LINK. If a feature is missing here you should check out the \BEGIN_LINK{document:roadmap} roadmap \END_LINK page to see what is coming in the future. If the feature you want is on neither, you should contact \BEGIN_STYLE{code} editor@4coder.net \END_STYLE. Some features that are already in 4coder might be missing from this list, if you want to be sure you should contact \BEGIN_STYLE{code} editor@4coder.net \END_STYLE.
|
||||||
|
|
||||||
\SECTION{Text Editing}
|
\SECTION{Text Editing}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
|
@ -11,11 +11,10 @@ This page provides a list of 4coder features for anyone trying to determine whet
|
||||||
\BEGIN_ITEM Cursor-Mark editing paradigm \END_ITEM
|
\BEGIN_ITEM Cursor-Mark editing paradigm \END_ITEM
|
||||||
\BEGIN_ITEM Navigation by characters, words, tokens, lines, and blank lines \END_ITEM
|
\BEGIN_ITEM Navigation by characters, words, tokens, lines, and blank lines \END_ITEM
|
||||||
\BEGIN_ITEM Modern style undo and redo \END_ITEM
|
\BEGIN_ITEM Modern style undo and redo \END_ITEM
|
||||||
\BEGIN_ITEM Incremental word complete with matching words in open files \END_ITEM
|
\BEGIN_ITEM Word complete with matching words in open files \END_ITEM
|
||||||
\BEGIN_ITEM Incremental word search \END_ITEM
|
\BEGIN_ITEM Incremental word search \END_ITEM
|
||||||
\BEGIN_ITEM Word replace \END_ITEM
|
\BEGIN_ITEM Word replace \END_ITEM
|
||||||
\BEGIN_ITEM List all occurences of words in open buffers \END_ITEM
|
\BEGIN_ITEM List all occurences of words in open buffers \END_ITEM
|
||||||
\BEGIN_ITEM Clipboard history and "paste-next" to copy multiple chunks of text around easily \END_ITEM
|
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{C/C++ Editing}
|
\SECTION{C/C++ Editing}
|
||||||
|
@ -23,30 +22,29 @@ This page provides a list of 4coder features for anyone trying to determine whet
|
||||||
\BEGIN_ITEM Code highlighting for C/C++ code \END_ITEM
|
\BEGIN_ITEM Code highlighting for C/C++ code \END_ITEM
|
||||||
\BEGIN_ITEM Code auto-layout rendering engine \END_ITEM
|
\BEGIN_ITEM Code auto-layout rendering engine \END_ITEM
|
||||||
\BEGIN_ITEM Text level auto-indenting \END_ITEM
|
\BEGIN_ITEM Text level auto-indenting \END_ITEM
|
||||||
\BEGIN_ITEM Run scripts and command line commands in editor \END_ITEM
|
\BEGIN_ITEM Build in editor \END_ITEM
|
||||||
\BEGIN_ITEM Jump to error \END_ITEM
|
\BEGIN_ITEM Jump to error \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{Project Organization}
|
\SECTION{Project Organization}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Set file extensions you care about in your project type to automatically open all code files \END_ITEM
|
\BEGIN_ITEM List file extensions you care about in your project type to automatically open all code files \END_ITEM
|
||||||
\BEGIN_ITEM Set shell/terminal commands to various fkeys for build scripts, test scripts etc \END_ITEM
|
\BEGIN_ITEM Set shell/terminal commands to various fkeys for build scripts, test scripts etc \END_ITEM
|
||||||
\BEGIN_ITEM project.4coder is a text file so it works painlessly with source control and can it is easy to start working with an existing project on a new machine \END_ITEM
|
\BEGIN_ITEM project.4coder is a text file so it works painlessly with source control and can it is easy to start working with an existing project on a new machine. \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{The Customization API}
|
\SECTION{The Customization API}
|
||||||
These features are included in the alpha builds for supporters at the $5 tier and above.
|
These features are included in the alpha builds at the $5 tier and above.
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Easy key rebinding \END_ITEM
|
\BEGIN_ITEM Easy key rebinding \END_ITEM
|
||||||
\BEGIN_ITEM Create custom commands \END_ITEM
|
\BEGIN_ITEM Create custom commands \END_ITEM
|
||||||
\BEGIN_ITEM Buffer reading and editing \END_ITEM
|
\BEGIN_ITEM Buffer reading and editing \END_ITEM
|
||||||
\BEGIN_ITEM View opening, closing, positioning \END_ITEM
|
\BEGIN_ITEM View opening, closing, positioning \END_ITEM
|
||||||
\BEGIN_ITEM Access to the code intelligence engine \END_ITEM
|
\BEGIN_ITEM Access to the code intelligence engine \END_ITEM
|
||||||
\BEGIN_ITEM Access to the clipboard \END_ITEM
|
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{The Experimental Features}
|
\SECTION{The Experimental Features}
|
||||||
These features are included in the alpha builds for supporters at the $10 tier and above and are generally only partially implemented, hence not being fully upgraded to the standard build.
|
These features are included in the alpha builds at the $10 tier and above and are generally only partially implemented, hence not being fully upgraded to the standard build.
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Moving cursor and mark to surrounding and matching braces
|
\BEGIN_ITEM Moving cursor and mark to surrounding and matching braces
|
||||||
\BEGIN_ITEM Rectangular delete
|
\BEGIN_ITEM Rectangular delete
|
||||||
|
@ -60,7 +58,7 @@ This page provides a list of 4coder features for anyone trying to determine whet
|
||||||
4coder's current setup and editing paradigm is modeled after emacs, so it is very natural to transition to 4coder from emacs for many users. 4coder customization is quite different from emacs though, so anyone who wants to keep their current keybinds will have to take the time to rewrite the keybinding code. Once the initial transition is done, any user who prefers C++ to Lisp will have a much better time in their 4coder configuration code.
|
4coder's current setup and editing paradigm is modeled after emacs, so it is very natural to transition to 4coder from emacs for many users. 4coder customization is quite different from emacs though, so anyone who wants to keep their current keybinds will have to take the time to rewrite the keybinding code. Once the initial transition is done, any user who prefers C++ to Lisp will have a much better time in their 4coder configuration code.
|
||||||
|
|
||||||
\SECTION{Transition From Vim}
|
\SECTION{Transition From Vim}
|
||||||
For vim users the built-in editing paradigm will not line up with editing habits, but thanks to the open customization model, a vim paradigm and default vim key bindings can be used in 4coder. The vim customization \BEGIN_LINK{!https://github.com/Chronister/4vim} here \END_LINK is an early example of this with many basic vim systems up and running.
|
For vim users the built-in editing paradigm will not line up with editing habits. Thanks to the open customization model, a vim paradigm and default vim key bindings can be used in 4coder. The vim customization \BEGIN_LINK{!https://github.com/Chronister/4vim} here \END_LINK is an early example of this with many basic vim systems up and running.
|
||||||
|
|
||||||
Right now 4coder is admittedly not great for vim users, but the transition path exists so keep your eyes on 4coder as better vim emulation is still on the way.
|
Right now 4coder is admittedly not great for vim users, but the transition path exists so keep your eyes on 4coder as better vim emulation is still on the way.
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
\IMAGE{image:4coder_logo}{width:200}
|
\IMAGE{image:4coder_logo}{width:200}
|
||||||
\END_LINK
|
\END_LINK
|
||||||
|
|
||||||
4coder is a code editor that lives in a space between an IDE and a power editor such as Emacs or Vim. It targets maximum ease of customization, extension, and cross platform reliability. Earlier versions of 4coder focussed entirely on C/C++ but it is now transitioning to be a more general purpose editor. Here you can learn about the features of 4coder, how to get started with 4coder, and how to get the absolute most out of 4coder.
|
4coder is a code editor that first and foremost targets the needs of C/C++ developers so they can be as efficient as possible. Here you can learn about the features of 4coder, how to get started with 4coder, and how to get the absolute most out of 4coder.
|
||||||
|
|
||||||
If you cannot find what you are looking for please contact \BEGIN_STYLE{code} editor@4coder.net \END_STYLE with questions.
|
If you cannot find what you are looking for please contact \BEGIN_STYLE{code} editor@4coder.net \END_STYLE with questions.
|
||||||
|
|
||||||
|
|
|
@ -3,35 +3,35 @@
|
||||||
\IMAGE{image:4coder_logo}{width:200}
|
\IMAGE{image:4coder_logo}{width:200}
|
||||||
\END_LINK
|
\END_LINK
|
||||||
|
|
||||||
Right now I am working on upgrading some core internal systems that should buy me the flexibility I need to get the rest of the envisioned features done. Because these core upgrades are experimental in nature, it's hard to predict how long it will take before they are ready.
|
Right now I am working on upgrading some core internal systems that should buy me the flexibility I need before I can move forward to any of the remaining features on this list. These time projections assume the new system is ready sometime in May 2017, but it is hard to predict this sort of experimental stuff, so it could be longer than that.
|
||||||
|
|
||||||
\SECTION{Improve the Core Buffer Systems}
|
\SECTION{Improve the Core Buffer Systems}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Programmable code wrapping. \END_ITEM
|
\BEGIN_ITEM Programmable code wrapping: May 2017. \END_ITEM
|
||||||
\BEGIN_ITEM Virtual/Ghost text for features such as word complete and code folding. \END_ITEM
|
\BEGIN_ITEM Virtual/Ghost text for features such as word complete. Target completion: May 2017. \END_ITEM
|
||||||
\BEGIN_ITEM Binary buffer mode. \END_ITEM
|
\BEGIN_ITEM Binary buffer mode. Target completion: June 2017. \END_ITEM
|
||||||
\BEGIN_ITEM Fix up the undo/redo system. \END_ITEM
|
\BEGIN_ITEM Fix up the undo/redo system. Target completion: July 2017. \END_ITEM
|
||||||
\BEGIN_ITEM Expose undo/redo system in the custom layer. \END_ITEM
|
\BEGIN_ITEM Expose undo/redo system in the custom layer. Target completion: July 2017. \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{Provide Customizations for Multiple Editing Paradgims}
|
\SECTION{Provide Customizations for Multiple Editing Paradgims}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Restructure custom layer to work as an event loop. \END_ITEM
|
\BEGIN_ITEM Restructure custom layer to work as an event loop. Target completion: July 2017. \END_ITEM
|
||||||
\BEGIN_ITEM Custom layer reloading at runtime. \END_ITEM
|
\BEGIN_ITEM Custom layer reloading at runtime. Target completion: August 2017. \END_ITEM
|
||||||
\BEGIN_ITEM New frameworks for vim like and sublime like editing. \END_ITEM
|
\BEGIN_ITEM New frameworks for vim like and sublime like editing. Target completion: August 2017. \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{Platform Layer Features and Porting Issues}
|
\SECTION{Platform Layer Features and Porting Issues}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Upgrade the worker thread system to better support async and parallel solutions. \END_ITEM
|
\BEGIN_ITEM Upgrade to worker thread system to better support async and parallel systems. Target completion: ??? \END_ITEM
|
||||||
\BEGIN_ITEM Support for double click opening files in an existing window. \END_ITEM
|
\BEGIN_ITEM Support for double click opening files in an existing window. Target completion: ??? \END_ITEM
|
||||||
\BEGIN_ITEM Make the rendeirng system modular. \END_ITEM
|
\BEGIN_ITEM Make the rendeirng system modular. Target completion: ??? \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
\SECTION{Buffer Driven GUI}
|
\SECTION{Buffer Driven GUI}
|
||||||
\BEGIN_LIST
|
\BEGIN_LIST
|
||||||
\BEGIN_ITEM Labels, clickable buttons, text fields. \END_ITEM
|
\BEGIN_ITEM Labels, clickable buttons, text fields. Target completion: ??? \END_ITEM
|
||||||
\BEGIN_ITEM Tables. \END_ITEM
|
\BEGIN_ITEM Tables. Target completion: ??? \END_ITEM
|
||||||
\BEGIN_ITEM IMGUI helper wrapper. \END_ITEM
|
\BEGIN_ITEM IMGUI helper wrapper. Target completion: ??? \END_ITEM
|
||||||
\END_LIST
|
\END_LIST
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
74
|
73
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue