feat(SublimeText2.WebPackages): cache packages

This commit is contained in:
Iristyle
2013-04-04 08:54:25 -04:00
parent 590d7a44f9
commit 1e6f643a1b
1026 changed files with 79077 additions and 0 deletions

View File

@@ -0,0 +1,253 @@
import os.path
import json
import copy
keymap = {
"expand_abbreviation": "ctrl+e",
"match_pair_outward": {"mac": "ctrl+d", "pc": "ctrl+,"},
"match_pair_inward": {"mac": "ctrl+j", "pc": "ctrl+shift+0"},
"matching_pair": {"mac": "ctrl+shift+t", "pc": "ctrl+alt+j"},
"next_edit_point": "ctrl+alt+right",
"prev_edit_point": "ctrl+alt+left",
"toggle_comment": {
"mac": "alt+shift+forward_slash",
"pc": "ctrl+shift+forward_slash",
"context": [{
"key": "selector",
"operand": "source.css - source.css.less, text.xml, text.html - source",
"operator": "equal"
}]
},
"split_join_tag": {"mac": "shift+super+'", "pc": "shift+ctrl+`"},
"remove_tag": {"mac": "super+'", "pc": "shift+ctrl+;"},
"evaluate_math_expression": {"mac": "shift+super+y", "pc": "shift+ctrl+y"},
"increment_number_by_1": "ctrl+up",
"decrement_number_by_1": "ctrl+down",
"increment_number_by_01": "alt+up",
"decrement_number_by_01": "alt+down",
"increment_number_by_10": {"mac": "alt+super+up", "pc": "shift+alt+up"},
"decrement_number_by_10": {"mac": "alt+super+down", "pc": "shift+alt+down"},
"select_next_item": {"mac": "shift+super+.", "pc": "shift+ctrl+."},
"select_previous_item": {"mac": "shift+super+,", "pc": "shift+ctrl+,"},
"reflect_css_value": {"mac": "shift+super+r", "pc": "shift+ctrl+r"},
"rename_tag": {"mac": "super+shift+k", "pc": "shift+ctrl+'"},
"encode_decode_data_url": {"mac": "shift+ctrl+d", "pc": "ctrl+'"},
"update_image_size": {"mac": "shift+ctrl+i", "pc": "ctrl+u"},
"expand_as_you_type": {
"keys": ["ctrl+alt+enter"],
"context": [{
"key": "setting.is_widget",
"operand": False,
"operator": "equal"
}]
},
"wrap_as_you_type": {
"mac": "ctrl+w",
"pc": "shift+ctrl+g",
"context": [{
"key": "setting.is_widget",
"operand": False,
"operator": "equal"
}]
}
}
# additional "raw" ST2 actions definition
addon = [
{
"keys": ["tab"],
"command": "expand_abbreviation_by_tab",
"context": [
{
"key": "selector",
"match_all": True,
"operand": "source.css, source.sass, source.less, source.scss, source.stylus, text.xml, text.html, text.haml, text.scala.html, source string",
"operator": "equal"
}, {
"key": "selector",
"operand": "text.html source.php, text.html source.js, storage.type.templatetag.django",
"operator": "not_equal",
"match_all": True
}, {
"key": "selection_empty",
"match_all": True
}, {
"key": "has_next_field",
"operator": "equal",
"operand": False,
"match_all": True
}, {
"key": "setting.disable_tab_abbreviations",
"operator": "equal",
"operand": False,
"match_all": True
}, {
"key": "auto_complete_visible",
"operand": False,
"operator": "equal",
"match_all": True
}, {
"key": "is_abbreviation",
"match_all": True
}
]
},
# behaviour of tab key when autocomplete popup is visible
{
"keys": ["tab"],
"command": "expand_abbreviation_by_tab",
"context": [
{
"key": "selector",
"match_all": True,
"operand": "source.css, source.sass, source.less, source.scss, source.stylus, text.xml, text.html, text.haml, text.scala.html, source string",
"operator": "equal"
}, {
"key": "selector",
"operand": "text.html source.php, text.html source.js, storage.type.templatetag.django",
"operator": "not_equal",
"match_all": True
}, {
"key": "selection_empty",
"match_all": True
}, {
"key": "has_next_field",
"operator": "equal",
"operand": False,
"match_all": True
}, {
"key": "auto_complete_visible",
"operator": "equal",
"operand": True,
"match_all": True
}, {
"key": "setting.disable_tab_abbreviations_on_auto_complete",
"operator": "equal",
"operand": False,
"match_all": True
}, {
"key": "is_abbreviation",
"match_all": True
}
]
},
# insert linebreak with formatting
{
"keys": ["enter"],
"command": "insert_snippet",
"args": {"contents": "\n\t${0}\n"},
"context": [
{
"key": "selector",
"operand": "meta.scope.between-tag-pair.html, meta.scope.between-tag-pair.xml",
"match_all": True
}, {
"key": "auto_complete_visible",
"operand": False,
"match_all": True
}, {
"key": "clear_fields_on_enter_key",
"match_all": True
}, {
"key": "setting.disable_formatted_linebreak",
"operand": False,
"match_all": True
}
]
},
{
"keys": ["#"],
"command": "emmet_insert_attribute",
"args": {"attribute": "id"},
"context": [
{
"key": "selector",
"match_all": True,
"operand": "text.html meta.tag -string -punctuation.definition.tag.begin.html -meta.scope.between-tag-pair.html -source -meta.tag.template.value.twig",
"operator": "equal"
}, {
"key": "setting.auto_id_class",
"operator": "equal",
"operand": True
}
]
},
{
"keys": ["."],
"command": "emmet_insert_attribute",
"args": {"attribute": "class"},
"context": [
{
"key": "selector",
"match_all": True,
"operand": "text.html meta.tag -string -punctuation.definition.tag.begin.html -meta.scope.between-tag-pair.html -source -meta.tag.template.value.twig",
"operator": "equal"
}, {
"key": "setting.auto_id_class",
"operator": "equal",
"operand": True
}
]
}
]
# header of generated file
header = "// This file is automatically generated with misc/generate-keymap.py script\n\n"
_dir = os.path.dirname(os.path.abspath(__file__))
standalone_actions = ["wrap_as_you_type", "expand_as_you_type", "rename_tag"]
def create_record(k, v, os_type):
if isinstance(v, basestring):
v = {"keys": [v]}
else:
v = copy.deepcopy(v)
if os_type in v:
v['keys'] = [v[os_type]]
if 'pc' in v:
del v['pc']
if 'mac' in v:
del v['mac']
if k in standalone_actions:
v['command'] = k
else:
v['command'] = 'run_emmet_action'
v['args'] = {"action": k}
if 'context' not in v:
v['context'] = []
v['context'].append({'key': 'emmet_action_enabled.%s' % k})
if len(v['context']) > 1:
for ctx in v['context']:
ctx['match_all'] = True
return v
def generate_keymap_file(path):
os_type = 'mac' if '(OSX)' in path else 'pc'
path = os.path.abspath(os.path.join(_dir, path))
print('Generate %s (%s)' % (path, os_type))
editor_keymap = [create_record(k, v, os_type) for k, v in keymap.items()] + addon
content = json.dumps(editor_keymap, indent=4)
f = open(path, 'w')
f.write(header + content)
f.close()
for path in ['../Default (OSX).sublime-keymap', '../Default (Windows).sublime-keymap', '../Default (Linux).sublime-keymap']:
generate_keymap_file(path)