Plugin tutorial init:
This commit is contained in:
@@ -172,7 +172,7 @@ RegisterVariable(Int, WaitForEvents, 1);
|
|||||||
RegisterVariable(Int, DrawLineNumbers, 1);
|
RegisterVariable(Int, DrawLineNumbers, 1);
|
||||||
RegisterVariable(Int, DrawScrollbar, 1);
|
RegisterVariable(Int, DrawScrollbar, 1);
|
||||||
RegisterVariable(Int, IndentSize, 4);
|
RegisterVariable(Int, IndentSize, 4);
|
||||||
RegisterVariable(Int, FontSize, 15);
|
RegisterVariable(Int, FontSize, 20);
|
||||||
RegisterVariable(String, PathToFont, "");
|
RegisterVariable(String, PathToFont, "");
|
||||||
RegisterVariable(Float, UndoMergeTime, 0.3);
|
RegisterVariable(Float, UndoMergeTime, 0.3);
|
||||||
RegisterVariable(Float, JumpHistoryMergeTime, 0.3);
|
RegisterVariable(Float, JumpHistoryMergeTime, 0.3);
|
||||||
|
|||||||
118
src/plugin_tutorial.cpp
Normal file
118
src/plugin_tutorial.cpp
Normal file
@@ -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
|
||||||
@@ -73,6 +73,7 @@
|
|||||||
#include "render_opengl.cpp"
|
#include "render_opengl.cpp"
|
||||||
|
|
||||||
#define PLUGIN_CONFIG 1
|
#define PLUGIN_CONFIG 1
|
||||||
|
#define PLUGIN_TUTORIAL 1
|
||||||
#define PLUGIN_WINDOW_MANAGEMENT 1
|
#define PLUGIN_WINDOW_MANAGEMENT 1
|
||||||
#define PLUGIN_DIRECTORY_NAVIGATION 1
|
#define PLUGIN_DIRECTORY_NAVIGATION 1
|
||||||
#define PLUGIN_SEARCH_OPEN_BUFFERS 1
|
#define PLUGIN_SEARCH_OPEN_BUFFERS 1
|
||||||
@@ -132,6 +133,7 @@
|
|||||||
#include "plugin_file_commands.cpp"
|
#include "plugin_file_commands.cpp"
|
||||||
#include "plugin_word_complete.cpp"
|
#include "plugin_word_complete.cpp"
|
||||||
#include "plugin_tests.cpp"
|
#include "plugin_tests.cpp"
|
||||||
|
#include "plugin_tutorial.cpp"
|
||||||
|
|
||||||
#if OS_WASM
|
#if OS_WASM
|
||||||
EM_JS(void, JS_SetMouseCursor, (const char *cursor_str), {
|
EM_JS(void, JS_SetMouseCursor, (const char *cursor_str), {
|
||||||
@@ -1141,6 +1143,12 @@ int main(int argc, char **argv, char **envp)
|
|||||||
Open(argv[i]);
|
Open(argv[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PLUGIN_TUTORIAL
|
||||||
|
if (argc == 1) {
|
||||||
|
InitTutorial();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if PLUGIN_LOAD_VCVARS
|
#if PLUGIN_LOAD_VCVARS
|
||||||
LoadVCVars();
|
LoadVCVars();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user