关于sublime-text:sublime-做一款翻译变量名插件
sublime 做一个变量翻译插件指标中文写一个变量名, 鼠标移上去调用命令能将中文单词翻译成变量名,要求能抉择是大驼峰小驼峰还是下划线 开始Tools > Developer > New Plugin... import sublimeimport sublime_pluginclass ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")首先思路就是先能取到鼠标所在的单词. 因为 sublime 是反对多光标的, view.sel()会返回数组 for region in self.view.sel(): print(region)ctrl+~关上控制台, 输出view.run_command('example') 看打印后果。 tip: sublime插件最终的命令名是取类名的每个单词,而后用下划线拼接,最初去掉`command`字符而来.如果类名批改为 `TestCommand`, 那么应该输出`view.run_command('test')`如果类名批改为 `TestDevCommand`, 那么应该输出`view.run_command('test_dev')`拿到鼠标所在的地位, 能够通过view.word(regin) 拿到整个单词的地位 当初代码如下: for region in self.view.sel(): passselection = self.view.word(region)print(selection)调用 APIsublime 中只能应用内置的模块,所以应用urllib, API 如下: urllib.request.urlopen(url, data)留神: 如果是get申请第二个参数不必填,填了就代表是post申请, 对于get咱们本人去拼接url 对于第三方翻译平台,我应用的是百度,因为在vscode中我也做了一个一摸一样的插件,所以 API 就拿来用了。 申请第三方翻译平台代码: import hashlibimport jsonfrom urllib import request,parsedef translateBaidu(self, q, fromq, to): appid = '20200921000570318' secret = 'GLMeRH02ZIQHOCIPlJhW' salt = random.random() sign = appid + q + str(salt) + secret url = 'https://fanyi-api.baidu.com/api/trans/vip/translate' data = { "q": q, "appid": appid, "from": fromq, "to": to, "salt": str(salt), "sign": hashlib.md5(sign.encode('utf-8')).hexdigest() } encodeddata = parse.urlencode(data) print(encodeddata) req = request.Request(url + '?' + encodeddata) r = request.urlopen(req) print(r)字符串整合拿到翻译后差不多是这样的: ...