-
Notifications
You must be signed in to change notification settings - Fork 0
/
SublimeTypographyMenu.py
39 lines (30 loc) · 1.02 KB
/
SublimeTypographyMenu.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sublime
import sublime_plugin
import re
def load_data():
f = sublime.load_binary_resource("/".join(("Packages", __package__, "typography-data.tsv")))
lines = f.decode("utf-8").strip().split("\n")
data = []
names = {}
code = 0
for line in lines:
code += 1
if line[0] == "#":
continue
character, name = line.strip().split("\t")
names[code] = name
name = name.title()
data.append([code, character, name, "{} {}".format(character, name, code)])
return data
class SelectTypographyCommand(sublime_plugin.TextCommand):
def run(self, edit):
window = self.view.window()
data = load_data()
items = [t[-1] for t in data]
def callback(selection):
if selection >= 0:
character = data[selection][1]
self.view.run_command("insert", {"characters": character})
window.show_quick_panel(items, callback)