diff --git a/.config/Sublime Text/Packages/User/All Hallow's Eve.tmTheme b/.config/Sublime Text/Packages/User/All Hallow's Eve.tmTheme
new file mode 100644
index 0000000..a216ce0
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/All Hallow's Eve.tmTheme
@@ -0,0 +1,305 @@
+
+
+
+
+ author
+ David Heinemeier Hansson
+ name
+ All Hallow's Eve
+ semanticClass
+ theme.dark.all-hallows-eve
+ settings
+
+
+ settings
+
+ background
+ #000000
+ caret
+ #FFFFFF
+ foreground
+ #FFFFFF
+ invisibles
+ #404040
+ lineHighlight
+ #333300
+ selection
+ #73597EE0
+
+
+
+ name
+ Text base
+ scope
+ text
+ settings
+
+ background
+ #434242
+ foreground
+ #FFFFFF
+
+
+
+ name
+ Source base
+ scope
+ source - source source
+ settings
+
+ background
+ #000000
+ foreground
+ #FFFFFF
+
+
+
+ name
+ Embedded source (text)
+ scope
+ text meta.embedded
+ settings
+
+ background
+ #000000
+ foreground
+ #FFFFFF
+
+
+
+ name
+ Embedded source (source)
+ scope
+ source meta.embedded
+ settings
+
+ background
+ #181818
+ foreground
+ #FFFFFF
+
+
+
+ name
+ Comment
+ scope
+ comment
+ settings
+
+ foreground
+ #9933CC
+
+
+
+ name
+ Constant
+ scope
+ constant
+ settings
+
+ foreground
+ #3387CC
+
+
+
+ name
+ Keyword
+ scope
+ keyword
+ settings
+
+ fontStyle
+
+ foreground
+ #CC7833
+
+
+
+ name
+ Pre-processor Line
+ scope
+ meta.preprocessor.c
+ settings
+
+ fontStyle
+
+ foreground
+ #D0D0FF
+
+
+
+ name
+ Pre-processor Directive
+ scope
+ keyword.control.import
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Function name
+ scope
+ entity.name.function
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Function argument
+ scope
+ variable.parameter
+ settings
+
+ fontStyle
+ italic
+
+
+
+ name
+ Block comment
+ scope
+ source comment.block
+ settings
+
+ background
+ #9B9B9B
+ foreground
+ #FFFFFF
+
+
+
+ name
+ String
+ scope
+ string
+ settings
+
+ foreground
+ #66CC33
+
+
+
+ name
+ String escapes
+ scope
+ string constant.character.escape
+ settings
+
+ foreground
+ #AAAAAA
+
+
+
+ name
+ String (executed)
+ scope
+ string.interpolated
+ settings
+
+ background
+ #CCCC33
+ foreground
+ #000000
+
+
+
+ name
+ Regular expression
+ scope
+ string.regexp
+ settings
+
+ foreground
+ #CCCC33
+
+
+
+ name
+ String (literal)
+ scope
+ string.literal
+ settings
+
+ foreground
+ #CCCC33
+
+
+
+ name
+ String escapes (executed)
+ scope
+ string.interpolated constant.character.escape
+ settings
+
+ foreground
+ #555555
+
+
+
+ name
+ Type name
+ scope
+ entity.name.type
+ settings
+
+ fontStyle
+ underline
+
+
+
+ name
+ Class inheritance
+ scope
+ entity.other.inherited-class
+ settings
+
+ fontStyle
+ italic underline
+
+
+
+ name
+ Tag name
+ scope
+ entity.name.tag
+ settings
+
+ fontStyle
+ underline
+
+
+
+ name
+ Tag attribute
+ scope
+ entity.other.attribute-name
+ settings
+
+ fontStyle
+
+
+
+
+ name
+ Support function
+ scope
+ support.function
+ settings
+
+ fontStyle
+
+ foreground
+ #C83730
+
+
+
+ uuid
+ 37F22BDC-B2F4-11D9-850C-000A95A89C98
+
+
diff --git a/.config/Sublime Text/Packages/User/Boron.tmTheme b/.config/Sublime Text/Packages/User/Boron.tmTheme
new file mode 100644
index 0000000..49c73e6
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/Boron.tmTheme
@@ -0,0 +1,221 @@
+
+
+
+
+ name
+ Boron
+ website
+ https://github.com/mjio/boron.tmtheme
+ comment
+ Last update: Feb 25 2013
+ settings
+
+
+ settings
+
+ background
+ #151515
+ caret
+ #b0d0f0
+ foreground
+ #e8e8d3
+ invisibles
+ #e8e8d3
+ selection
+ #404040
+ lineHighlight
+ #010101
+ gutterForeground
+ #373737
+
+
+
+
+ name
+ Comment
+ scope
+ comment
+ settings
+
+ foreground
+ #888888
+
+
+
+
+ name
+ String
+ scope
+ string
+ settings
+
+ foreground
+ #99ad6a
+
+
+
+
+ name
+ String begin/end
+ scope
+ punctuation.definition.string.begin, punctuation.definition.string.end
+ settings
+
+ foreground
+ #556633
+
+
+
+
+ name
+ Symbol
+ scope
+ constant.other
+ settings
+
+ foreground
+ #7697d6
+
+
+
+
+ name
+ Regexp
+ scope
+ string.regexp
+ settings
+
+ foreground
+ #dd0093
+
+
+
+
+ name
+ Variable
+ scope
+ variable, support.class
+ settings
+
+ foreground
+ #ffb964
+
+
+
+
+ name
+ Number
+ scope
+ constant.numeric
+ settings
+
+ foreground
+ #cf6a4c
+
+
+
+
+ name
+ Entity
+ scope
+ entity
+ settings
+
+ foreground
+ #ffb964
+
+
+
+
+ name
+ Entity Function
+ scope
+ entity.name.function
+ settings
+
+ foreground
+ #fad07a
+
+
+
+
+ name
+ Keyword
+ scope
+ keyword.control
+ settings
+
+ foreground
+ #8fbfdc
+
+
+
+
+ name
+ Diff insertion
+ scope
+ diff.inserted, markup.inserted
+ settings
+
+ foreground
+ #558f1f
+
+
+
+
+ name
+ Diff deletion
+ scope
+ diff.deleted, markup.deleted
+ settings
+
+ foreground
+ #a1000d
+
+
+
+
+ name
+ Diff header
+ scope
+ meta.diff.header
+ settings
+
+ foreground
+ #FFFFFF
+ background
+ #4e738a
+
+
+
+
+ name
+ Diff range
+ scope
+ meta.diff.range
+ settings
+
+ fontStyle
+ italic
+ foreground
+ #888888
+
+
+
+
+ name
+ Diff changed
+ scope
+ markup.changed
+ settings
+
+ foreground
+ #967efb
+
+
+
+
+ uuid
+ 4e4cdb00-2fb2-11e2-81c1-0800200c9a66
+
+
diff --git a/.config/Sublime Text/Packages/User/Default (OSX).sublime-keymap b/.config/Sublime Text/Packages/User/Default (OSX).sublime-keymap
new file mode 100644
index 0000000..4e3266b
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/Default (OSX).sublime-keymap
@@ -0,0 +1,100 @@
+[
+ {
+ "keys": ["home"],
+ "command": "move_to",
+ "args": {"to": "bol", "extend": false}
+ },
+ {
+ "keys": ["end"],
+ "command": "move_to",
+ "args": {"to": "eol", "extend": false}
+ },
+ {
+ "keys": ["shift+home"],
+ "command": "move_to",
+ "args": {"to": "bol", "extend": true}
+ },
+ {
+ "keys": ["shift+end"],
+ "command": "move_to",
+ "args": {"to": "eol", "extend": true}
+ },
+ { "keys": ["super+1"], "command": "focus_group", "args": { "group": 0 } },
+ { "keys": ["super+2"], "command": "focus_group", "args": { "group": 1 } },
+ { "keys": ["super+3"], "command": "focus_group", "args": { "group": 2 } },
+ { "keys": ["super+4"], "command": "focus_group", "args": { "group": 3 } },
+ { "keys": ["super+5"], "command": "focus_group", "args": { "group": 4 } },
+ { "keys": ["super+6"], "command": "focus_group", "args": { "group": 5 } },
+ { "keys": ["super+7"], "command": "focus_group", "args": { "group": 6 } },
+ { "keys": ["super+8"], "command": "focus_group", "args": { "group": 7 } },
+ { "keys": ["super+9"], "command": "focus_group", "args": { "group": 8 } },
+ { "keys": ["super+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
+ { "keys": ["super+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
+ { "keys": ["super+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
+ { "keys": ["super+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
+ { "keys": ["super+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
+ { "keys": ["super+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
+ { "keys": ["super+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
+ { "keys": ["super+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
+ { "keys": ["super+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
+
+ { "keys": ["super+pagedown"], "command": "next_view" },
+ { "keys": ["super+pageup"], "command": "prev_view" },
+
+ { "keys": ["super+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
+
+ { "keys": ["super+shift+a"], "command": "find_all_under" },
+
+ { "keys": ["alt+up"], "command": "swap_line_up" },
+ { "keys": ["alt+down"], "command": "swap_line_down" },
+
+ {
+ "keys": ["shift+f12"],
+ "command": "lsp_symbol_references",
+ "args": {"side_by_side": false, "force_group": true, "fallback": false, "group": -1, "include_declaration": false},
+ "context": [{"key": "lsp.session_with_capability", "operand": "referencesProvider"}]
+ },
+ {
+ "keys": ["f12"],
+ "command": "lsp_symbol_definition",
+ "args": {"side_by_side": false, "force_group": true, "fallback": false, "group": -1},
+ "context": [
+ {"key": "lsp.session_with_capability", "operand": "definitionProvider"},
+ {"key": "auto_complete_visible", "operand": false}
+ ]
+ },
+ {
+ "keys": ["super+r"],
+ "command": "lsp_symbol_rename",
+ "context": [{"key": "lsp.session_with_capability", "operand": "renameProvider"}]
+ },
+ {
+ "keys": ["ctrl+space"],
+ "command": "lsp_commit_completion_with_opposite_insert_mode",
+ "context": [
+ {"key": "lsp.session_with_capability", "operand": "completionProvider"},
+ {"key": "auto_complete_visible"}
+ ]
+ },
+ {
+ "keys": ["super+e"],
+ "command": "copy_filepath_with_line_numbers"
+ },
+ {
+ "keys": ["f1"],
+ "command": "show_panel",
+ "args": {"panel": "output.exec"},
+ },
+ {
+ "keys": ["f2"],
+ "command": "lsp_show_diagnostics_panel",
+ },
+ {
+ "keys": ["f3"],
+ "command": "toggle_terminus_panel",
+ },
+ {
+ "keys": ["super+b"],
+ "command": "hide_panel",
+ },
+]
diff --git a/.config/Sublime Text/Packages/User/Preferences.sublime-settings b/.config/Sublime Text/Packages/User/Preferences.sublime-settings
new file mode 100644
index 0000000..147970a
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/Preferences.sublime-settings
@@ -0,0 +1,30 @@
+{
+ "caret_extra_bottom": 0,
+ "caret_extra_top": 0,
+ "caret_extra_width": 1,
+ "font_size": 15,
+ "color_scheme": "Packages/User/massimo_custom.tmTheme",
+ "translate_tabs_to_spaces": true,
+ "tab_size": 4,
+ "word_wrap": false,
+ "auto_match_enabled": false,
+ "trim_trailing_white_space_on_save": "not_on_caret",
+ "auto_complete": false,
+ "tab_completion": false,
+ "mini_diff": false,
+ "theme": "Adaptive.sublime-theme",
+ "ignored_packages":
+ [
+ "Vintage",
+ ],
+ "index_files": true,
+ "scroll_past_end": true,
+ "draw_indent_guides": false,
+ "line_numbers": true,
+ "gutter": false,
+ "block_caret": false,
+ "show_definitions": false,
+ "fold_buttons": false,
+ "line_padding_top": -1,
+ "line_padding_bottom": -1,
+}
diff --git a/.config/Sublime Text/Packages/User/Witness.sublime-color-scheme b/.config/Sublime Text/Packages/User/Witness.sublime-color-scheme
new file mode 100644
index 0000000..8008c6c
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/Witness.sublime-color-scheme
@@ -0,0 +1,53 @@
+{
+ "name": "Witness Color Scheme",
+ "globals": {
+ "accent": "#d3b58d",
+ "background": "#072626",
+ "block_caret": "rgba(144, 238, 144, 0.6)",
+ "brackets_options": "underline",
+ "caret": "rgba(144, 238, 144, 1)",
+ "fold_marker": "#d3b58d",
+ "foreground": "#d3b58d",
+ "gutter": "#072626",
+ "gutter_foreground": "#d3b58d",
+ "inactive_selection": "#0049f5",
+ "line_highlight": "#072626",
+ "selection": "blue",
+ "tags_options": "underline"
+ },
+ "rules": [
+ {
+ "scope": "comment",
+ "foreground": "#3fdf1f"
+ },
+ {
+ "scope": "constant.language",
+ "foreground": "#79ffcf"
+ },
+ {
+ "scope": "entity.name, keyword.declaration, meta.annotation, meta.path, meta.struct meta.block, meta.tag, support.variable, variable, variable.other.readwrite",
+ "foreground": "lightblue"
+ },
+ {
+ "scope": "entity.name.constant, keyword.control, meta.class entity.name.class, meta.constant, meta.function.parameters, meta.struct entity.name.struct, meta.struct meta.group, storage.type, support.constant, support.type, variable.type",
+ "foreground": "lightgreen"
+ },
+ {
+ "scope": "entity.name.enum, keyword.operator, meta.block meta.method entity.name.function, meta.block storage.modifier, meta.class storage.type, meta.function-call variable.function, meta.preprocessor, meta.struct storage.type - meta.block, meta.template storage.type, punctuation.section, variable.other",
+ "foreground": "#d3b58d"
+ },
+ {
+ "scope": "entity.name.function, keyword, storage",
+ "foreground": "white"
+ },
+ {
+ "scope": "invalid",
+ "foreground": "darkseagreen",
+ "background": "#504038"
+ },
+ {
+ "scope": "string",
+ "foreground": "#0fdfaf"
+ }
+ ]
+}
diff --git a/.config/Sublime Text/Packages/User/massimo_custom.tmTheme b/.config/Sublime Text/Packages/User/massimo_custom.tmTheme
new file mode 100644
index 0000000..86b6f78
--- /dev/null
+++ b/.config/Sublime Text/Packages/User/massimo_custom.tmTheme
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+ name
+ Massimo Custom
+ settings
+
+
+ settings
+
+ background
+ #0E131E
+ caret
+ #DDDDDD
+ foreground
+ #DDDDDD
+ invisibles
+ #646871
+ lineHighlight
+ #00000078
+ selection
+ #15285A
+
+
+
+ name
+ Operator
+ scope
+ keyword.operator
+ settings
+
+ foreground
+ #DDDDDD
+
+
+
+ name
+ Comment
+ scope
+ comment
+ settings
+
+ foreground
+ #88c0db
+
+
+
+ name
+ String
+ scope
+ string
+ settings
+
+ foreground
+ #d3b58d
+
+
+
+ name
+ Variable
+ scope
+ variable.language, variable.other
+ settings
+
+ foreground
+ #DDDDDD
+
+
+
+ name
+ Keyword
+ scope
+ keyword
+ settings
+
+ foreground
+ #c47616
+
+
+
+ name
+ Storage
+ scope
+ storage
+ settings
+
+ foreground
+ #c47616
+
+
+
+ name
+ Invalid
+ scope
+ invalid
+ settings
+
+ foreground
+ #FC2D07
+
+
+
+ name
+ Built-in constant
+ scope
+ constant.language
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Class name
+ scope
+ entity.name.class
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Inherited class
+ scope
+ entity.other.inherited-class
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Tag name
+ scope
+ entity.name.tag
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Library function
+ scope
+ support.function
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Library constant
+ scope
+ support.constant
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Library class/type
+ scope
+ support.type, support.class
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ name
+ Library variable
+ scope
+ support.other.variable
+ settings
+
+ foreground
+ #14DED1
+
+
+
+ uuid
+ 456763C8-249C-4421-BABC-67EF3126FABD
+
+
diff --git a/sync.sh b/sync.sh
index 9182b8a..467bc75 100755
--- a/sync.sh
+++ b/sync.sh
@@ -54,6 +54,16 @@ get_system_path() {
echo "$HOME_DIR/$rel_path"
fi
;;
+ .config/Sublime\ Text/Packages/User/*|.config/Sublime\ Text/Packages/user/*)
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ # Map .config/Sublime Text/Packages/User/* to ~/Library/Application Support/Sublime Text/Packages/User/*
+ local sublime_path="${rel_path#.config/Sublime\ Text/Packages/User/}"
+ [[ -z "$sublime_path" ]] && sublime_path="${rel_path#.config/Sublime\ Text/Packages/user/}"
+ echo "/Users/${USER}/Library/Application Support/Sublime Text/Packages/User/${sublime_path}"
+ else
+ echo "$HOME_DIR/$rel_path"
+ fi
+ ;;
*)
echo "$HOME_DIR/$rel_path"
;;