diff --git a/src/globals.cpp b/src/globals.cpp index 30007da..1766e29 100644 --- a/src/globals.cpp +++ b/src/globals.cpp @@ -172,7 +172,7 @@ RegisterVariable(Int, WaitForEvents, 1); RegisterVariable(Int, DrawLineNumbers, 1); RegisterVariable(Int, DrawScrollbar, 1); RegisterVariable(Int, IndentSize, 4); -RegisterVariable(Int, FontSize, 15); +RegisterVariable(Int, FontSize, 20); RegisterVariable(String, PathToFont, ""); RegisterVariable(Float, UndoMergeTime, 0.3); RegisterVariable(Float, JumpHistoryMergeTime, 0.3); diff --git a/src/plugin_tutorial.cpp b/src/plugin_tutorial.cpp new file mode 100644 index 0000000..1a11559 --- /dev/null +++ b/src/plugin_tutorial.cpp @@ -0,0 +1,118 @@ +#if PLUGIN_TUTORIAL + +#define RegisterTutorialSection(NAME, DESC, STRING)\ +String NAME##_string = STRING;\ +void CMD_##NAME() {\ + Buffer *buffer = CreateBuffer(SysAllocator, GetUniqueBufferName(ProjectFolder, #NAME), NAME##_string.len * 4 + 4096);\ + buffer->temp = true;\ + RawAppend(buffer, NAME##_string);\ + buffer->dirty = false;\ + Open(buffer->name);\ +} RegisterCommand(CMD_##NAME, "", DESC); + +RegisterTutorialSection(EnterTheTutorial, "The guide to sailing the text", R"==( + + Hello sailor! + -------------------------------- + + I see you have entered the unknown + text waters of the internet. + + Before we set sail, right click: + + :CoolText + + ...and watch the waters stir. + +)=="); + +RegisterTutorialSection(CoolText, "Coolest text inside the coolest tutorial", R"==( + + The text can lead you + into interesting places + -------------------------------- + + Do not be afraid. Try these too: + + :MakeFontLarger + :MakeFontSmaller + + Make the letters huge. + Then make them tiny again. + and then ... + + -------------------------------- + + :GoToNextSectionOfTheTutorial! + +)=="); + +RegisterTutorialSection(GoToNextSectionOfTheTutorial, "Yes!", R"==( + Special words listen to keys too: + + Ctrl-+ Ctrl-- + + Even right click has a twin: + + Ctrl-Q F12 + + Put your caret here and try: + + :Prev + :New (beware, you may never return! Hint: Take a look at the bar on the bottom) + :HowToFindCommands +)=="); + +RegisterTutorialSection(HowToFindCommands, "Tutorial on finding the commands", R"==( + Open the map: + + :ShowCommands (Ctrl-Shift-P) + + Type a few letters. + Press (Enter) to choose. + + These special words are not magical + You can easily find them + and use. + + ------------------------------- + + HowToBindCommandsToKeys + + ------------------------------- +)=="); + +RegisterTutorialSection(HowToBindCommandsToKeys, "how to bind commands to keys", R"==( + +We will start easy. Try selecting the entire line below and (ctrl-q / right click / F12) + +:Set DrawLineNumbers 0 +:Set TextColor ffaa0000 + + + +Make it normal again: + +:Set DrawLineNumbers 1 +:Set TextColor ff21201d + + + +And of course this setup also works for keys: + +:Set MakeFontLarger 'ctrl-t' + + + + +See the map for this: + + :OpenConfigOptions + +)=="); + +void InitTutorial() { + CMD_EnterTheTutorial(); +} + +#endif diff --git a/src/text_editor.cpp b/src/text_editor.cpp index 720866d..fa55013 100644 --- a/src/text_editor.cpp +++ b/src/text_editor.cpp @@ -73,6 +73,7 @@ #include "render_opengl.cpp" #define PLUGIN_CONFIG 1 +#define PLUGIN_TUTORIAL 1 #define PLUGIN_WINDOW_MANAGEMENT 1 #define PLUGIN_DIRECTORY_NAVIGATION 1 #define PLUGIN_SEARCH_OPEN_BUFFERS 1 @@ -132,6 +133,7 @@ #include "plugin_file_commands.cpp" #include "plugin_word_complete.cpp" #include "plugin_tests.cpp" +#include "plugin_tutorial.cpp" #if OS_WASM EM_JS(void, JS_SetMouseCursor, (const char *cursor_str), { @@ -1141,6 +1143,12 @@ int main(int argc, char **argv, char **envp) Open(argv[i]); } +#if PLUGIN_TUTORIAL + if (argc == 1) { + InitTutorial(); + } +#endif + #if PLUGIN_LOAD_VCVARS LoadVCVars(); #endif