From 3ad502780fc3fefd1c3e7a1e353c280365e8e99a Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Thu, 30 Mar 2017 19:42:26 -0400 Subject: [PATCH] Working on new site information --- 4ed_site.ctm | Bin 1284 -> 1412 bytes project.4coder | 2 +- site/sitegen.cpp | 81 ++++++++---- site/source_material/binding_list.txt | 184 ++++++++++++++++++++++++++ site/source_material/feature_list.txt | 11 +- site/source_material/home.txt | 2 + site/source_material/roadmap.txt | 20 ++- site/source_material/tutorials.txt | 2 +- 8 files changed, 261 insertions(+), 41 deletions(-) create mode 100644 site/source_material/binding_list.txt diff --git a/4ed_site.ctm b/4ed_site.ctm index 4a18e394b8be4edd26264afa075238c3ff49b076..f9650050a25ded66e784b10aadd36de9584a855e 100644 GIT binary patch delta 137 zcmZqSYT@3%!dibO?vD5Tm6sTq85kJ4xEL7zoZB4*<2P_JFeKXC?N|VnUkK!Xu>75{ y7|Qfilename); + terminate_with_null(&str); + + switch (asset_list[i].type){ + case SiteAsset_Generic: + { + add_generic_file(&doc_system, str.str, asset->extension, asset->name); + }break; + + case SiteAsset_Image: + { + add_image_description(&doc_system, str.str, asset->extension, asset->name); + }break; + + default: InvalidCodePath; + } + } generate_homepage(&doc_system, part, src_directory); generate_4coder_docs(&doc_system, part, code_directory, src_directory); generate_feature_list(&doc_system, part, src_directory); + generate_binding_list(&doc_system, part, src_directory); generate_roadmap(&doc_system, part, src_directory); generate_tutorials(&doc_system, part, src_directory); diff --git a/site/source_material/binding_list.txt b/site/source_material/binding_list.txt new file mode 100644 index 00000000..4fbe68d2 --- /dev/null +++ b/site/source_material/binding_list.txt @@ -0,0 +1,184 @@ + +\BEGIN_LINK{document:home} +\IMAGE{image:4coder_logo}{width:200} +\END_LINK + +These are the default key bindings in 4coder version \VERSION + +The following bindings apply in all situations: +\SECTION{Global Bindings} + \BEGIN_LIST + \BEGIN_ITEM - Create a new panel with a vertical split \END_ITEM + \BEGIN_ITEM - Create a new panel with a horizontal split \END_ITEM + \BEGIN_ITEM - Close a panel \END_ITEM + \BEGIN_ITEM - Change active panel \END_ITEM + \BEGIN_ITEM - change active panel backwards \END_ITEM + + \BEGIN_ITEM - New file dialogue \END_ITEM + \BEGIN_ITEM - Open file dialogue \END_ITEM + \BEGIN_ITEM - Open file dialogue in other panel \END_ITEM + \BEGIN_ITEM - Kill buffer dialogue \END_ITEM + \BEGIN_ITEM - Switch open buffer dialogue \END_ITEM + + \BEGIN_ITEM - Open color and font selection GUI \END_ITEM + \BEGIN_ITEM - Open a debug information GUI \END_ITEM + + + \BEGIN_ITEM - Change to footer build panel \END_ITEM + \BEGIN_ITEM - Close footer build panel \END_ITEM + \BEGIN_ITEM - Goto next error/jump location \END_ITEM + \BEGIN_ITEM - Goto previous error/jump location \END_ITEM + \BEGIN_ITEM - Goto first error/jump location \END_ITEM + \BEGIN_ITEM - Launch basic build (calls build.bat, build.sh, or Makefile) \END_ITEM + + \BEGIN_ITEM - Execute arbitrary shell/terminal command in arbitrary buffer \END_ITEM + \BEGIN_ITEM - Repeat previous shell/terminal command \END_ITEM + + \BEGIN_ITEM - Execute 4coder internal command \END_ITEM + + \BEGIN_ITEM - Show scrollbar \END_ITEM + \BEGIN_ITEM - Hide scrollbar \END_ITEM + \BEGIN_ITEM - Toggle filebar \END_ITEM + + \BEGIN_ITEM - Toggle mouse input); + \BEGIN_ITEM - Toggle fullscreen mode); + \BEGIN_ITEM - Exit 4coder); + + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + \BEGIN_ITEM - Launch shell command set in a loaded project \END_ITEM + + \END_LIST + +Long name commands that can be typed in after for infrequently triggered commands. +\SECTION{4coder Internal Command } + \BEGIN_LIST + \BEGIN_ITEM "load project" - Load a project.4coder file, ditching any previously loaded project \END_ITEM + \BEGIN_ITEM "open all code" - Open all code files in the current directory, extensions set in config.4coder, default to C/C++ extensions \END_ITEM + \BEGIN_ITEM "open all code recursive" - Like "open all code" but recurses through folders \END_ITEM + \BEGIN_ITEM "dos lines" - Switch the bufer to 'dos' line ending mode CRLF \END_ITEM + \BEGIN_ITEM "nix lines" - Switch the bufer to 'nix' line ending mode LF \END_ITEM + \END_LIST + +The following bindings apply in general text files and most apply in code files, but some are overriden by other commands. +\SECTION{Text File Bindings} + \BEGIN_LIST + \BEGIN_ITEM - Insert character \END_ITEM + + \BEGIN_ITEM - Set cursor position to mouse position \END_ITEM + \BEGIN_ITEM - Set mark position to mouse position \END_ITEM + \BEGIN_ITEM - Set mark position to mouse position \END_ITEM + + \BEGIN_ITEM - Move left \END_ITEM + \BEGIN_ITEM - Move right \END_ITEM + \BEGIN_ITEM - Delete character \END_ITEM + \BEGIN_ITEM - Delete character \END_ITEM + \BEGIN_ITEM - Backspace character \END_ITEM + \BEGIN_ITEM - Backspace character \END_ITEM + \BEGIN_ITEM - Move up \END_ITEM + \BEGIN_ITEM - Move up \END_ITEM + \BEGIN_ITEM - Move to end of line \END_ITEM + \BEGIN_ITEM - Move to beginning of line \END_ITEM + \BEGIN_ITEM - Move up one whole page \END_ITEM + \BEGIN_ITEM - Move down one whole page \END_ITEM + + \BEGIN_ITEM - Seek right, stop at whitespace \END_ITEM + \BEGIN_ITEM - Seek left, stop at whitespace \END_ITEM + \BEGIN_ITEM - Seek up, stop at blank line \END_ITEM + \BEGIN_ITEM - Seek down, stop at blank line \END_ITEM + + \BEGIN_ITEM - Move up ten lines \END_ITEM + \BEGIN_ITEM - Move down ten lines \END_ITEM + + \BEGIN_ITEM - Delete word backwards \END_ITEM + \BEGIN_ITEM - Delete word forwards \END_ITEM + \BEGIN_ITEM - snipe_token_or_word \END_ITEM + + \BEGIN_ITEM Note: 'the range' in the following commands refers to the text between the mark and cursor. \END_ITEM + \BEGIN_ITEM - Set mark to the cursor position \END_ITEM + \BEGIN_ITEM - Replace a substring in the range \END_ITEM + \BEGIN_ITEM - Copy text from the range \END_ITEM + \BEGIN_ITEM - Delete the text in the range \END_ITEM + \BEGIN_ITEM - Center the active view on the cursor \END_ITEM + \BEGIN_ITEM - Move the view so that it's left edge is near the cursor's current x position \END_ITEM + \BEGIN_ITEM - Begin an incremental search through the current buffer \END_ITEM + \BEGIN_ITEM - Create a jump location list of all loaded exact matches of a string \END_ITEM + \BEGIN_ITEM - Create a jump location list of all loaded substring matches of a string without case sensitivity \END_ITEM + \BEGIN_ITEM - Goto a specific line number \END_ITEM + \BEGIN_ITEM - Convert text in the range to lowercase \END_ITEM + \BEGIN_ITEM - Kill the current buffer \END_ITEM + \BEGIN_ITEM - Toggle line wrapping on the current buffer \END_ITEM + \BEGIN_ITEM - Swap the cursor and mark positions \END_ITEM + \BEGIN_ITEM - Reload the current buffer from the file system \END_ITEM + \BEGIN_ITEM - Begin an iterative query replace \END_ITEM + \BEGIN_ITEM - Begin an iterative query replace to replace the word under the cursor \END_ITEM + \BEGIN_ITEM - Begin a reversed incremental search through the current buffer \END_ITEM + \BEGIN_ITEM - Save the current buffer with it's given filename \END_ITEM + \BEGIN_ITEM - Begin an incremenal search through the current buffer for the word under the cursor \END_ITEM + \BEGIN_ITEM - Create a jump location list of all loaded exact matches of the word under the cursor \END_ITEM + \BEGIN_ITEM - Convert text in the range to uppercase \END_ITEM + \BEGIN_ITEM - Paste from the clipboard \END_ITEM + \BEGIN_ITEM - Toggle the virtual whitespace system \END_ITEM + \BEGIN_ITEM - Paste the next item on the clipboard, 4coder keeps a finite history of past 64 copies \END_ITEM + \BEGIN_ITEM - Copy text from the range and delete the range (aka cut) \END_ITEM + \BEGIN_ITEM - Redo \END_ITEM + \BEGIN_ITEM - Undo \END_ITEM + + \BEGIN_ITEM - Decrease the line wrap width for the current buffer \END_ITEM + \BEGIN_ITEM - Increase the line wrap width for the current buffer \END_ITEM + + \BEGIN_ITEM - Toggle the show whitespace option \END_ITEM + \BEGIN_ITEM - Clean trailing whitespace from all lines \END_ITEM + \BEGIN_ITEM - Interpret jump location under cursor and jump to it, lock the next/prev jump commands to this jump location list (only in read only files) \END_ITEM + \BEGIN_ITEM - Like previous command but tries to open the jump location in the view that currently holds the jump location list \END_ITEM + + \END_LIST + +The following commands only apply in C/C++ files where the lexer (syntax highlighting) is turned on. +\SECTION{Text File Bindings} + \BEGIN_LIST + + bind(context, key_right, MDFR_CTRL, seek_alphanumeric_or_camel_right); + bind(context, key_left, MDFR_CTRL, seek_alphanumeric_or_camel_left); + + bind(context, '\n', MDFR_NONE, write_and_auto_tab); + bind(context, '\n', MDFR_SHIFT, write_and_auto_tab); + bind(context, '}', MDFR_NONE, write_and_auto_tab); + bind(context, ')', MDFR_NONE, write_and_auto_tab); + bind(context, ']', MDFR_NONE, write_and_auto_tab); + bind(context, ';', MDFR_NONE, write_and_auto_tab); + bind(context, '#', MDFR_NONE, write_and_auto_tab); + + bind(context, '\t', MDFR_NONE, word_complete); + bind(context, '\t', MDFR_CTRL, auto_tab_range); + bind(context, '\t', MDFR_SHIFT, auto_tab_line_at_cursor); + + bind(context, 't', MDFR_ALT, write_todo); + bind(context, 'y', MDFR_ALT, write_note); + bind(context, 'r', MDFR_ALT, write_block); + bind(context, '[', MDFR_CTRL, open_long_braces); + bind(context, '{', MDFR_CTRL, open_long_braces_semicolon); + bind(context, '}', MDFR_CTRL, open_long_braces_break); + bind(context, 'i', MDFR_ALT, if0_off); + bind(context, '1', MDFR_ALT, open_file_in_quotes); + bind(context, '2', MDFR_ALT, open_matching_file_cpp); + bind(context, '0', MDFR_CTRL, write_zero_struct); + bind(context, 'I', MDFR_CTRL, list_all_functions_current_buffer); + + \END_LIST \ No newline at end of file diff --git a/site/source_material/feature_list.txt b/site/source_material/feature_list.txt index 1e764cc6..13bf5960 100644 --- a/site/source_material/feature_list.txt +++ b/site/source_material/feature_list.txt @@ -3,10 +3,11 @@ \IMAGE{image:4coder_logo}{width:200} \END_LINK -This page provides a list of 4coder features for anyone trying to determine whether 4coder is the right editor for them. 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. +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} \BEGIN_LIST + \BEGIN_ITEM Support for UTF8 encoded files \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 Modern style undo and redo \END_ITEM @@ -25,6 +26,13 @@ This page provides a list of 4coder features for anyone trying to determine whet \BEGIN_ITEM Jump to error \END_ITEM \END_LIST +\SECTION{Project Organization} + \BEGIN_LIST + \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 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 + \SECTION{The Customization API} These features are included in the alpha builds at the $5 tier and above. \BEGIN_LIST @@ -43,6 +51,7 @@ This page provides a list of 4coder features for anyone trying to determine whet \BEGIN_ITEM Multi-line editing \BEGIN_ITEM Rename a parameter \BEGIN_ITEM Write in explicit enum values from 0 to n + \BEGIN_ITEM Scope aware features: scope navigation & scope absorb down \END_LIST \SECTION{Transition From Emacs} diff --git a/site/source_material/home.txt b/site/source_material/home.txt index 4efbc2f6..a37ced4d 100644 --- a/site/source_material/home.txt +++ b/site/source_material/home.txt @@ -11,6 +11,8 @@ If you cannot find what you are looking for please contact \BEGIN_STYLE{code} ed \BEGIN_LINK{document:features} The official 4coder feature list \END_LINK +\BEGIN_LINK{documents:binding_list} The list of default 4coder bindings \END_LINK + \BEGIN_LINK{document:roadmap} The official 4coder road map \END_LINK \BEGIN_LINK{document:custom_docs} The official documentation for the 4coder customization system \END_LINK diff --git a/site/source_material/roadmap.txt b/site/source_material/roadmap.txt index 9ec8404a..362efaea 100644 --- a/site/source_material/roadmap.txt +++ b/site/source_material/roadmap.txt @@ -3,29 +3,28 @@ \IMAGE{image:4coder_logo}{width:200} \END_LINK -The 4coder TODO list, in the rough order of priority and with very speculative time to completion estimates. +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} \BEGIN_LIST - \BEGIN_ITEM utf8 buffer mode. Target completion: March 2017. \END_ITEM - \BEGIN_ITEM binary buffer mode. Target completion: March 2017. \END_ITEM - \BEGIN_ITEM Fix up the undo/redo system. Target completion: March 2017. \END_ITEM - \BEGIN_ITEM Expose undo/redo system in the custom layer. Target completion: April 2017. \END_ITEM + \BEGIN_ITEM Programmable code wrapping: May 2017. \END_ITEM + \BEGIN_ITEM Virtual/Ghost text for features such as word complete. Target completion: May 2017. \END_ITEM + \BEGIN_ITEM Binary buffer mode. Target completion: June 2017. \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. Target completion: July 2017. \END_ITEM \END_LIST \SECTION{Provide Customizations for Multiple Editing Paradgims} \BEGIN_LIST - \BEGIN_ITEM Restructure custom layer to work as an event loop. Target completion: May 2017. \END_ITEM - \BEGIN_ITEM Custom layer reloading at runtime. Target completion: May 2017. \END_ITEM - \BEGIN_ITEM Virtual/Ghost text for features such as word complete. Target completion: May 2017. \END_ITEM - \BEGIN_ITEM New frameworks for vim like and sublime like editing. Target completion: June 2017. \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. Target completion: August 2017. \END_ITEM + \BEGIN_ITEM New frameworks for vim like and sublime like editing. Target completion: August 2017. \END_ITEM \END_LIST \SECTION{Platform Layer Features and Porting Issues} \BEGIN_LIST \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. Target completion: ??? \END_ITEM - \BEGIN_ITEM Support for multi-window single process. Target completion: ??? \END_ITEM \BEGIN_ITEM Make the rendeirng system modular. Target completion: ??? \END_ITEM \END_LIST @@ -36,4 +35,3 @@ The 4coder TODO list, in the rough order of priority and with very speculative t \BEGIN_ITEM IMGUI helper wrapper. Target completion: ??? \END_ITEM \END_LIST - diff --git a/site/source_material/tutorials.txt b/site/source_material/tutorials.txt index 8ae5e474..5ba72683 100644 --- a/site/source_material/tutorials.txt +++ b/site/source_material/tutorials.txt @@ -11,7 +11,7 @@ Setting up and navigating your project with 4coder: \VIDEO{youtube:https://www.youtube.com/embed/glPEpaT6GH0} -Extending your project with a project file: +Extending your project with a project.4coder file: \VIDEO{youtube:https://www.youtube.com/embed/iZLtS3IoatE}