156 lines
5.8 KiB
C++
156 lines
5.8 KiB
C++
SDL_Window *SDLWindow;
|
|
bool IsInFullscreen;
|
|
int FullScreenSizeX, FullScreenSizeY;
|
|
int FullScreenPositionX, FullScreenPositionY;
|
|
bool Testing = false;
|
|
bool AppIsRunning = true;
|
|
bool WaitForEvents = true;
|
|
|
|
WindowID WindowIDs;
|
|
ViewID ViewIDs;
|
|
Int BufferIDs;
|
|
|
|
Array<Window *> Windows;
|
|
Array<View *> Views;
|
|
Array<Buffer *> Buffers;
|
|
|
|
// console
|
|
BufferID NullBufferID;
|
|
ViewID NullViewID;
|
|
WindowID NullWindowID;
|
|
|
|
// hidden floating window
|
|
WindowID DebugWindowID;
|
|
ViewID DebugViewID;
|
|
BufferID DebugBufferID;
|
|
|
|
WindowID CommandBarWindowID;
|
|
WindowID StatusBarWindowID;
|
|
WindowID SearchBarWindowID;
|
|
ViewID SearchViewID;
|
|
BufferID SearchBufferID;
|
|
|
|
WindowID ActiveWindowID;
|
|
WindowID LastActiveLayoutWindowID;
|
|
WindowID ScrollbarSelected = {-1};
|
|
WindowID DocumentSelected = {-1};
|
|
WindowID ResizerSelected = {-1};
|
|
WindowID ResizerHover = {-1};
|
|
Caret DocumentAnchor;
|
|
|
|
Buffer *GCInfoBuffer;
|
|
Buffer *EventBuffer;
|
|
Buffer *ScratchBuffer;
|
|
Buffer *TraceBuffer;
|
|
View *TraceView;
|
|
|
|
String WorkDir;
|
|
RandomSeed UniqueBufferNameSeed = {};
|
|
Array<Event> EventPlayback;
|
|
BlockArena Perm;
|
|
|
|
// clipboard
|
|
BlockArena ClipboardArena;
|
|
String16 SavedClipboardString;
|
|
Array<String16> SavedClipboardCarets = {SysAllocator};
|
|
|
|
struct InternTable {
|
|
HashTable<String> strings; // general allocator
|
|
BlockArena arena;
|
|
};
|
|
|
|
String Intern(InternTable *table, String string) {
|
|
String *value = table->strings.get(string);
|
|
if (!value) {
|
|
String copy = Copy(table->arena, string);
|
|
table->strings.put(copy, copy);
|
|
return copy;
|
|
}
|
|
return *value;
|
|
}
|
|
|
|
// We use the intern table to optimize for space, I don't want to worry about freeing
|
|
// buffer names and event text data so let it all accumulate and interning will at least
|
|
// optimize worst offenders (like event text)
|
|
InternTable GlobalInternTable;
|
|
|
|
Array<CommandData> CommandFunctions;
|
|
Array<FunctionData> TestFunctions;
|
|
Array<Variable> Variables;
|
|
|
|
Array<Process> ActiveProcesses = {};
|
|
Array<String> ProcessEnviroment = {};
|
|
|
|
|
|
///////////////////////////////
|
|
// CONFIG
|
|
Color GruvboxDark0Hard = {0x1d, 0x20, 0x21, 0xff};
|
|
Color GruvboxDark0 = {0x28, 0x28, 0x28, 0xff};
|
|
Color GruvboxDark0Soft = {0x32, 0x30, 0x2f, 0xff};
|
|
Color GruvboxDark1 = {0x3c, 0x38, 0x36, 0xff};
|
|
Color GruvboxDark2 = {0x50, 0x49, 0x45, 0xff};
|
|
Color GruvboxDark3 = {0x66, 0x5c, 0x54, 0xff};
|
|
Color GruvboxDark4 = {0x7c, 0x6f, 0x64, 0xff};
|
|
Color GruvboxGray245 = {0x92, 0x83, 0x74, 0xff};
|
|
Color GruvboxGray244 = {0x92, 0x83, 0x74, 0xff};
|
|
Color GruvboxLight0Hard = {0xf9, 0xf5, 0xd7, 0xff};
|
|
Color GruvboxLight0 = {0xfb, 0xf1, 0xc7, 0xff};
|
|
Color GruvboxLight0Soft = {0xf2, 0xe5, 0xbc, 0xff};
|
|
Color GruvboxLight1 = {0xeb, 0xdb, 0xb2, 0xff};
|
|
Color GruvboxLight2 = {0xd5, 0xc4, 0xa1, 0xff};
|
|
Color GruvboxLight3 = {0xbd, 0xae, 0x93, 0xff};
|
|
Color GruvboxLight4 = {0xa8, 0x99, 0x84, 0xff};
|
|
Color GruvboxBrightRed = {0xfb, 0x49, 0x34, 0xff};
|
|
Color GruvboxBrightGreen = {0xb8, 0xbb, 0x26, 0xff};
|
|
Color GruvboxBrightYellow = {0xfa, 0xbd, 0x2f, 0xff};
|
|
Color GruvboxBrightBlue = {0x83, 0xa5, 0x98, 0xff};
|
|
Color GruvboxBrightPurple = {0xd3, 0x86, 0x9b, 0xff};
|
|
Color GruvboxBrightAqua = {0x8e, 0xc0, 0x7c, 0xff};
|
|
Color GruvboxBrightOrange = {0xfe, 0x80, 0x19, 0xff};
|
|
Color GruvboxNeutralRed = {0xcc, 0x24, 0x1d, 0xff};
|
|
Color GruvboxNeutralGreen = {0x98, 0x97, 0x1a, 0xff};
|
|
Color GruvboxNeutralYellow = {0xd7, 0x99, 0x21, 0xff};
|
|
Color GruvboxNeutralBlue = {0x45, 0x85, 0x88, 0xff};
|
|
Color GruvboxNeutralPurple = {0xb1, 0x62, 0x86, 0xff};
|
|
Color GruvboxNeutralAqua = {0x68, 0x9d, 0x6a, 0xff};
|
|
Color GruvboxNeutralOrange = {0xd6, 0x5d, 0x0e, 0xff};
|
|
Color GruvboxFadedRed = {0x9d, 0x00, 0x06, 0xff};
|
|
Color GruvboxFadedGreen = {0x79, 0x74, 0x0e, 0xff};
|
|
Color GruvboxFadedYellow = {0xb5, 0x76, 0x14, 0xff};
|
|
Color GruvboxFadedBlue = {0x07, 0x66, 0x78, 0xff};
|
|
Color GruvboxFadedPurple = {0x8f, 0x3f, 0x71, 0xff};
|
|
Color GruvboxFadedAqua = {0x42, 0x7b, 0x58, 0xff};
|
|
Color GruvboxFadedOrange = {0xaf, 0x3a, 0x03, 0xff};
|
|
RegisterVariable(Color, ColorText, GruvboxDark0Hard);
|
|
RegisterVariable(Color, ColorLoadTextHighlight, {0x00, 0x00, 0x00, 0x0F});
|
|
RegisterVariable(Color, ColorBackground, GruvboxLight0Hard);
|
|
RegisterVariable(Color, ColorInactiveWindow, {0x00, 0x00, 0x00, 0x0F});
|
|
RegisterVariable(Color, ColorTextLineNumbers, GruvboxDark4);
|
|
RegisterVariable(Color, ColorLineHighlight, GruvboxLight0Soft);
|
|
RegisterVariable(Color, ColorMainCaret, GruvboxDark0Hard);
|
|
RegisterVariable(Color, ColorSubCaret, GruvboxGray245);
|
|
RegisterVariable(Color, ColorSelection, GruvboxLight1);
|
|
RegisterVariable(Color, ColorWhitespaceDuringSelection, GruvboxLight4);
|
|
RegisterVariable(Color, ColorMouseUnderline, GruvboxDark0Hard);
|
|
RegisterVariable(Color, ColorCaretUnderline, GruvboxGray245);
|
|
RegisterVariable(Color, ColorFuzzySearchLineHighlight, GruvboxDark0);
|
|
RegisterVariable(Color, ColorScrollbarBackground, GruvboxLight2);
|
|
RegisterVariable(Color, ColorScrollbarScroller, GruvboxLight1);
|
|
RegisterVariable(Color, ColorScrollbarScrollerSelected, GruvboxLight0Hard);
|
|
RegisterVariable(Color, ColorTitleBarText, GruvboxDark2);
|
|
RegisterVariable(Color, ColorTitleBarBackground, GruvboxLight1);
|
|
RegisterVariable(Color, ColorTitleBarActiveBackground, {0xfe, 0xfe, 0xfe, 0xfe});
|
|
RegisterVariable(Color, ColorTitleBarSelection, GruvboxLight3);
|
|
RegisterVariable(Color, ColorResizerBackground, GruvboxLight0Hard);
|
|
RegisterVariable(Color, ColorResizerOutline, GruvboxLight3);
|
|
RegisterVariable(Int, StyleWaitForEvents, 1);
|
|
RegisterVariable(Int, StyleDrawLineNumbers, 1);
|
|
RegisterVariable(Int, StyleDrawScrollbar, 1);
|
|
RegisterVariable(Int, StyleIndentSize, 4);
|
|
RegisterVariable(Int, StyleFontSize, 15);
|
|
RegisterVariable(Int, StyleFontFilter, 0);
|
|
RegisterVariable(String, StyleFont, "/home/krz/text_editor/package/CascadiaMono.ttf");
|
|
RegisterVariable(String, StyleVCVarsall, "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvars64.bat");
|
|
RegisterVariable(Float, StyleUndoMergeTimeout, 0.3);
|
|
RegisterVariable(String, ConfigInternetBrowser, "firefox");
|