Skip to content

Commit

Permalink
refactor: nits
Browse files Browse the repository at this point in the history
Signed-off-by: Jack Cherng <[email protected]>
  • Loading branch information
jfcherng committed Sep 27, 2020
1 parent e3627f3 commit bc3330d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 12 deletions.
26 changes: 18 additions & 8 deletions plugin/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ def get_text_delimiter() -> str:
"""
The delimiter used to concat/split multiple selected text,
so we could convert multiple text with only a single API call.
This delimiter should be a extremely rarely used string.
"""

return r"\n\5\n"
return r"\n\5\9\8\n"


@lru_cache()
Expand All @@ -48,77 +50,85 @@ def get_converters_info(index: int) -> Dict[str, Any]:


def get_all_converters_info() -> List[Dict[str, Any]]:
# fmt: off
return [
{
"name_api": "Simplified",
"name_eng": "Simplified",
"name_chi": "简体化",
"desc": "将文字转换为简体。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "简", ""),
},
{
"name_api": "Traditional",
"name_eng": "Traditional",
"name_chi": "繁體化",
"desc": "將文字轉換為繁體。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "繁", ""),
},
{
"name_eng": "China",
"name_api": "China",
"name_eng": "China Localization",
"name_chi": "中国化",
"desc": "将文字转换为简体,并使用中国地区的词语修正。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "中", ""),
},
{
"name_eng": "Hongkong",
"name_api": "Hongkong",
"name_eng": "Hongkong Localization",
"name_chi": "香港化",
"desc": "將文字轉換為繁體,並使用香港地區的詞語修正。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "港", ""),
},
{
"name_eng": "Taiwan",
"name_api": "Taiwan",
"name_eng": "Taiwan Localization",
"name_chi": "台灣化",
"desc": "將文字轉換為繁體,並使用台灣地區的詞語修正。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "台", ""),
},
{
"name_api": "Pinyin",
"name_eng": "Pinyin",
"name_chi": "拼音化",
"desc": "將文字轉為拼音。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "拼", ""),
},
{
"name_api": "Bopomofo",
"name_eng": "Bopomofo",
"name_chi": "注音化",
"desc": "將文字轉為注音。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "注", ""),
},
{
"name_api": "Mars",
"name_eng": "Mars",
"name_chi": "火星化",
"desc": "將文字轉換為繁體火星文。",
"detail": "",
"st_kind": (sublime.KIND_ID_MARKUP, "火", ""),
},
{
"name_eng": "WikiSimplified",
"name_api": "WikiSimplified",
"name_eng": "Simplified (Wikipeida)",
"name_chi": "维基简体化",
"desc": "只使用维基百科的词库将文字转换为简体。",
"detail": "一般而言,你应该用不到这个模式。",
"st_kind": (sublime.KIND_ID_AMBIGUOUS, "简", ""),
},
{
"name_eng": "WikiTraditional",
"name_api": "WikiTraditional",
"name_eng": "Traditional (Wikipeida)",
"name_chi": "維基繁體化",
"desc": "只使用維基百科的詞庫將文字轉換為繁體。",
"detail": "一般而言,你應該用不到這個模式。",
"st_kind": (sublime.KIND_ID_AMBIGUOUS, "繁", ""),
},
]
# fmt: on
5 changes: 5 additions & 0 deletions plugin/st_features.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import sublime

ST_VERSION = int(sublime.version())

CAN_QUICKPANELITEM = ST_VERSION >= 4083
20 changes: 16 additions & 4 deletions plugin/sublime_text/FanhuajiCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,43 @@
import sublime
import sublime_plugin
from typing import Any, Dict, List, Union
from .. import st_features
from ..functions import prepare_fanhuaji_convert_args
from ..log import msg, print_msg
from ..settings import get_all_converters_info, get_converters_info, get_setting, get_text_delimiter

# HTTP headers used in issuing an API call
HTTP_HEADERS = {"user-agent": "Sublime Text Fanhuaji"}
HTTP_HEADERS = {
# fmt: off
"user-agent": "Sublime Text {} Fanhuaji".format(st_features.ST_VERSION),
# fmt: on
}


class FanhuajiConvertPanelCommand(sublime_plugin.WindowCommand):
def run(self) -> None:
trigger_format = "{name_eng} - {name_chi}"

items = [] # type: List[Union[str, sublime.QuickPanelItem]]

# use QuickPanelItem if possible
if int(sublime.version()) >= 4083:
items = [
sublime.QuickPanelItem(
trigger="{name_eng} - {name_chi}".format_map(converter),
trigger=trigger_format.format_map(converter),
# details=converter["detail"],
annotation=converter["desc"],
kind=converter["st_kind"],
)
for converter in get_all_converters_info()
]
else:
items = ["{name_eng} - {name_chi}".format_map(converter) for converter in get_all_converters_info()]
# fmt: off
items = [
trigger_format.format_map(converter)
for converter in get_all_converters_info()
]
# fmt: on

sublime.active_window().show_quick_panel(items, self.on_done)

Expand All @@ -42,7 +54,7 @@ def on_done(self, index: int) -> None:
# fmt: off
{
"args": {
"converter": converter["name"],
"converter": converter["name_api"],
},
},
# fmt: on
Expand Down

0 comments on commit bc3330d

Please sign in to comment.