diff --git a/.config/sublime_merge/Preferences.sublime-settings b/.config/sublime_merge/Preferences.sublime-settings
new file mode 100644
index 0000000..6e3bcd7
--- /dev/null
+++ b/.config/sublime_merge/Preferences.sublime-settings
@@ -0,0 +1,6 @@
+{
+ "theme": "Merge Dark.sublime-theme",
+ "side_bar_layout": "tabs",
+ "diff_algorithm": "match_git",
+ "visible_carriage_returns_at_eol": true,
+}
diff --git a/.config/sublime_text/Default (Windows).sublime-keymap b/.config/sublime_text/Default (Windows).sublime-keymap
new file mode 100644
index 0000000..e9f39e7
--- /dev/null
+++ b/.config/sublime_text/Default (Windows).sublime-keymap
@@ -0,0 +1,28 @@
+[
+ { "keys": ["ctrl+q"], "command": "goto_definition" },
+ { "keys": ["alt+q"], "command": "jump_back" },
+
+ { "keys": ["ctrl+e"], "command": "next_result" },
+ { "keys": ["alt+e"], "command": "prev_result" },
+
+ { "keys": ["ctrl+up"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": false} },
+ { "keys": ["ctrl+down"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": true} },
+ { "keys": ["ctrl+shift+up"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": false, "extend": true} },
+ { "keys": ["ctrl+shift+down"], "command": "move", "args": {"by": "stops", "empty_line": true, "forward": true, "extend": true} },
+
+ { "keys": ["alt+up"], "command": "swap_line_up" },
+ { "keys": ["alt+down"], "command": "swap_line_down" },
+ { "keys": ["alt+left"], "command": "jump_back" },
+ { "keys": ["alt+right"], "command": "jump_forward" },
+
+ { "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} },
+ { "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": true} },
+ { "keys": ["ctrl+alt+down"], "command": "duplicate_line" },
+ { "keys": ["ctrl+alt+up"], "command": "duplicate_line" },
+
+
+ { "keys": ["ctrl+shift+l"], "command": "split_selection_into_lines" },
+ { "keys": ["ctrl+r"], "command": "goto_symbol_in_project" },
+ { "keys": ["ctrl+m"], "command": "toggle_record_macro" },
+ { "keys": ["alt+m"], "command": "run_macro" },
+]
diff --git a/.config/sublime_text/Preferences.sublime-settings b/.config/sublime_text/Preferences.sublime-settings
new file mode 100644
index 0000000..ddf7558
--- /dev/null
+++ b/.config/sublime_text/Preferences.sublime-settings
@@ -0,0 +1,35 @@
+// Settings in here override those in "Default/Preferences.sublime-settings",
+// and are overridden in turn by syntax-specific settings.
+{
+ "show_line_endings": true,
+ "default_line_ending": "unix",
+ "hardware_acceleration": "opengl",
+ "auto_complete": false,
+
+ "highlight_line": true,
+ "trim_trailing_white_space_on_save": "not_on_caret",
+ "translate_tabs_to_spaces": true,
+ "trim_only_modified_white_space": false,
+ "auto_match_enabled": false,
+ "hot_exit": "disabled",
+ "hot_exit_projects": false,
+ "ignored_packages":
+ [
+ "Vintage",
+ ],
+ "index_files": true,
+ // "color_scheme": "gruvbox (Light) (Soft).sublime-color-scheme",
+ "font_size": 11,
+ "font_face": "Cascadia Code",
+ "theme": "Adaptive.sublime-theme",
+ "folder_exclude_patterns": ["external", ".svn", ".git", ".hg", "CVS", ".Trash", ".Trash-*"],
+ "vc_vars_cmd": [
+ "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat",
+ "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat",
+ ],
+
+ // "line_numbers": false,
+ // "gutter": false,
+ // "margin": 0,
+ "color_scheme": "gruvbox (Dark) (Hard).sublime-color-scheme",
+}
diff --git a/.config/sublime_text/call_build.sublime-build b/.config/sublime_text/call_build.sublime-build
new file mode 100644
index 0000000..38d2b9b
--- /dev/null
+++ b/.config/sublime_text/call_build.sublime-build
@@ -0,0 +1,6 @@
+{
+ "shell_cmd": "build.bat",
+ "file_regex": "^(.*)\\((\\d+),?(\\d+)?\\)\\s?:\\s([^\n]+)", // msvc
+ // "file_regex": "^(.*):(\\d+):(\\d+):", // clang
+ "working_dir": "$folder",
+}
diff --git a/.config/sublime_text/comment_section.sublime-snippet b/.config/sublime_text/comment_section.sublime-snippet
new file mode 100644
index 0000000..f1aa8dc
--- /dev/null
+++ b/.config/sublime_text/comment_section.sublime-snippet
@@ -0,0 +1,9 @@
+
+
+
+ ////
+
+
+
diff --git a/.config/sublime_text/enum snippet.sublime-snippet b/.config/sublime_text/enum snippet.sublime-snippet
new file mode 100644
index 0000000..9ef67fa
--- /dev/null
+++ b/.config/sublime_text/enum snippet.sublime-snippet
@@ -0,0 +1,9 @@
+
+
+
+ en
+
+ (source.c | source.objc | source.c++ | source.objc++) - meta.preprocessor.include - comment - string
+
diff --git a/.config/sublime_text/installed_packages.txt b/.config/sublime_text/installed_packages.txt
new file mode 100644
index 0000000..9070c79
--- /dev/null
+++ b/.config/sublime_text/installed_packages.txt
@@ -0,0 +1,8 @@
+AlignTab :: Package Control
+ayu :: Package Control
+Clang Format :: Package Control
+gruvbox :: Package Control
+LiveServerPlus :: Package Control
+Odin :: Package Control
+Package Control :: Package Control
+Sublime_RemedyBG :: https://github.com/krzosa/Sublime_RemedyBG
diff --git a/.config/sublime_text/set_unix_line_ending.py b/.config/sublime_text/set_unix_line_ending.py
new file mode 100644
index 0000000..54c5148
--- /dev/null
+++ b/.config/sublime_text/set_unix_line_ending.py
@@ -0,0 +1,5 @@
+import sublime_plugin
+
+class SetUnixLineEnding(sublime_plugin.EventListener):
+ def on_pre_save(self, view):
+ view.set_line_endings("unix")
\ No newline at end of file
diff --git a/.config/sublime_text/setup_vsvars.py b/.config/sublime_text/setup_vsvars.py
new file mode 100644
index 0000000..5738a0a
--- /dev/null
+++ b/.config/sublime_text/setup_vsvars.py
@@ -0,0 +1,125 @@
+import sublime
+import sublime_plugin
+import os
+
+from threading import Thread
+from subprocess import Popen, PIPE
+from os import environ
+
+# Related reading;
+# https://stackoverflow.com/questions/39881091/how-to-run-sublimetext-with-visual-studio-environment-enabled/
+
+# For the unfamiliar, Visual Studio ships with a batch file which sets up the
+# environment variables you need to be able to run visual studio tools from a
+# command prompt.
+#
+# This pluguin was written in response to someone that wanted to know how you
+# could run Sublime and have it have the visual studio environment already set
+# up.
+#
+# This plugin will use a subprocess to execute the batch file in the background
+# and then issue the 'set' command to get the command interpreter to output the
+# state of the environment before it exits.
+#
+# This output is gathered and parsed to come up with a dictionary similar to
+# the environ table that python uses. From here we can easily detect what new
+# environment variables were added and the values of those that changed, and
+# set them as appropriate.
+#
+# As written Sublime needs to be restarted in order to execute the batch file
+# again. A more elegant solution would be to save the environment prior to
+# modifying it so that it could be restored and a new environment applied.
+
+# To use this, you need to specify a setting in your user preferences named
+# 'vc_vars_cmd' which should contain a complete path to the batch file you want
+# to execute. Optionally you can also specify 'vc_vars_arch', which will be
+# passed as a command line argument to the batch file executed. Remember that
+# the preferences are JSON, so you need to quote all path separators.
+
+SENTINEL="SUBL_VC_VARS"
+
+def _get_vc_env():
+ """
+ Run the batch file specified in the vc_vars_cmd setting (with an
+ optional architecture type) and return back a dictionary of the
+ environment that the batch file sets up.
+
+ Returns None if the preference is missing or the batch file fails.
+ """
+ settings = sublime.load_settings("Preferences.sublime-settings")
+ vars_cmd = settings.get("vc_vars_cmd")
+ vars_arch = settings.get("vc_vars_arch", "amd64")
+
+ if vars_cmd is None:
+ settings = sublime.load_settings("Remedy.sublime-settings")
+ if settings:
+ vars_cmd = settings.get("vc_vars_cmd")
+ vars_arch = settings.get("vc_vars_arch", "amd64")
+
+ if type(vars_cmd) == list:
+ for it in vars_cmd:
+ if os.path.isfile(it):
+ vars_cmd = it
+ break
+
+ if vars_cmd is None:
+ print("set_vc_vars: Cannot set Visual Studio Environment")
+ print("set_vc_vars: Add 'vc_vars_cmd' setting to settings and restart")
+ return None
+
+ try:
+ # Run the batch, outputting a sentinel value so we can separate out
+ # any error messages the batch might generate.
+ shell_cmd = "\"{0}\" {1} && echo {2} && set".format(
+ vars_cmd, vars_arch, SENTINEL)
+
+ output = Popen(shell_cmd, stdout=PIPE, shell=True).stdout.read()
+
+ lines = [line.strip() for line in output.decode("utf-8").splitlines()]
+ env_lines = lines[lines.index(SENTINEL) + 1:]
+ except:
+ return None
+
+ # Convert from var=value to dictionary key/value pairs. We upper case the
+ # keys, since Python does that to the mapping it stores in environ.
+ env = {}
+ for env_var in env_lines:
+ parts = env_var.split("=", maxsplit=1)
+ env[parts[0].upper()] = parts[1]
+
+ return env
+
+def install_vc_env():
+ """
+ Try to collect the appropriate Visual Studio environment variables and
+ set them into the current environment.
+ """
+ vc_env = _get_vc_env()
+ if vc_env is None:
+ print("set_vc_vars: Unable to fetch the Visual Studio Environment")
+ return sublime.status_message("Error fetching VS Environment")
+
+ # Add newly set environment variables
+ for key in vc_env.keys():
+ if key not in environ:
+ environ[key] = vc_env[key]
+
+ # Update existing variables whose values changed.
+ for key in environ:
+ if key in vc_env and environ[key] != vc_env[key]:
+ environ[key] = vc_env[key]
+
+ # Set a sentinel variable so we know not to try setting up the path again.
+ environ[SENTINEL] = "BOOTSTRAPPED"
+ sublime.status_message("VS Environment enabled")
+
+def plugin_loaded():
+ if sublime.platform() != "windows":
+ return sublime.status_message("VS is not supported on this platform")
+
+ # To reload the environment if it changes, restart Sublime.
+ if SENTINEL in environ:
+ return sublime.status_message("VS Environment already enabled")
+
+ # Update in the background so we don't block the UI
+ Thread(target=install_vc_env).start()
diff --git a/.config/sublime_text/struct_snippet.sublime-snippet b/.config/sublime_text/struct_snippet.sublime-snippet
new file mode 100644
index 0000000..8502ef9
--- /dev/null
+++ b/.config/sublime_text/struct_snippet.sublime-snippet
@@ -0,0 +1,8 @@
+
+
+ st
+ (source.c | source.objc | source.c++ | source.objc++) - meta.preprocessor.include - comment - string
+