VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview

功能仍未完成. 下面仅为效果演示之用. 并未实际调用英汉词典数据:

相关源码

新建编辑器内容提供者:

'use strict';

import * as vscode from 'vscode';

export default class Provider implements vscode.TextDocumentContentProvider{

	static scheme = 'references';
private _演示字典: Map<String, String> = new Map([
["BasicCalculator", "基本的计算器"],
["Calculator", "计算器类"],
["calculator", "计算器"],
["add", "加"],
["subtract", "減"],
["multiply", "乘"],
["divide", "除"],
["first", "第一"],
["second", "第二"],
["number", "数"],
["divisor", "被除数"]
]); dispose() {
} provideTextDocumentContent(uri: vscode.Uri): string | Thenable<string> {
var 新内容 = vscode.window.activeTextEditor.document.getText();
for (var 原命名 of this._演示字典.keys()) {
新内容 = this._replaceAll(新内容, 原命名, this._演示字典.get(原命名));
}
return 新内容;
} private _replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
} let seq = 0; export function encodeLocation(uri: vscode.Uri, pos: vscode.Position): vscode.Uri {
const query = JSON.stringify([uri.toString(), pos.line, pos.character]);
return vscode.Uri.parse(`${Provider.scheme}:test.java?${query}#${seq++}`);
}

添加并列编辑器("状态框"为现有功能):

    const provider = new ContentProvider();

    const providerRegistrations = Disposable.from(
workspace.registerTextDocumentContentProvider(ContentProvider.scheme, provider)
); const commandRegistration = commands.registerTextEditorCommand('editor.翻译标识符', editor => {
const uri = encodeLocation(editor.document.uri, editor.selection.active);
return workspace.openTextDocument(uri).then(doc => window.showTextDocument(doc, editor.viewColumn + 1));
}); const 状态框 = window.createStatusBarItem(StatusBarAlignment.Right, 100);
状态框.command = 'extension.翻译选中文本';
context.subscriptions.push(
provider,
commandRegistration,
providerRegistrations,
状态框
);

发现问题

似乎vscode对中文命名的高亮有些问题:

对比英文命名的高亮:


尴尬的彩蛋:

VS Code 英汉词典进化效果演示: 翻译文件所有命名 - V2EX指出, "演示字典"部分有个错误: divisor是"除数". 当然, 本身英汉词典数据是正确的(如下). 功能实现之后应该不会有此问题:

2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名的更多相关文章

  1. 2018-12-25 VS Code英汉词典v0.0.8: 批量翻译文件部分命名

    续前文: VS Code英汉词典进化效果演示: 翻译文件所有命名 vscode"英汉词典"插件地址: 官方链接 现在实现的效果比之前的演示差很多, 因为executeDocumen ...

  2. 2018-12-03 VS Code英汉词典插件v0.0.7-尝试词性搭配

    续上文VS Code英汉词典插件v0.0.6-改为TS实现, 加测试后, 继续重构(提取常量, 避免var, 添加类型等等), 并完善测试. 测试方法参考: Testing Visual Studio ...

  3. 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试

    如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...

  4. 2018-11-09 VS Code英汉词典插件v0.0.4-驼峰下划线命名

    首先, 在两天时间内安装数破百, 多谢支持. VS Code插件市场地址: 英汉词典 - Visual Studio Marketplace 开源库地址同前文: Visual Studio Code插 ...

  5. 2018-11-06 Visual Studio Code插件-英汉词典初版发布

    VS插件市场地址: 英汉词典 - Visual Studio Marketplace 开源在: program-in-chinese/vscode_english_chinese_dictionary ...

  6. 2018-09-06 Java实现英汉词典API初版发布在Maven

    在打算批量代码汉化工具 · Issue #86 · program-in-chinese/overview时, 发现没有现成的Java库实现英汉查询功能. 于是开此项目. 源码库: program-i ...

  7. 吴裕雄--天生自然python学习笔记:python 用firebase实现英汉词典进阶版

    用 post 方法创建的数据会自动产生一个 id (Key ),但有时也常常为了取得这个 id 而让程序难以处理 . 以英汉词典标准版来说,它的数据结构如下: 如果将每条数据都改为{eword:cwo ...

  8. linux 英汉词典程序shell+postgresql版

    在linux控制台下工作,有时候遇到不懂的单词,想要找个linux下的词典程序,搜寻无果,只好自己动手写个了. 首先获取词典文本文件,在github上找到一个 建立数据库 create databas ...

  9. 用java实现的英汉词典

    import java.io.*; import java.util.*; public class MyDictionary { static private Map<String, Stri ...

随机推荐

  1. map,set和weakmap,weakset

    概述 set和map属于es6的内容,今天在看书的时候遇到了,所以好好的总结一下,供以后开发时参考,相信对其他人也有用. 参考资料: mdn Keyed collections Map和WeakMap ...

  2. [Postman]发送第一个请求(1)

    通过API请求,您可以与具有要访问的API端点的服务器联系,并执行某些操作.这些操作是HTTP方法. 最常用的方法是GET,POST,PUT和DELETE.方法的名称是不言自明的.例如,GET使您可以 ...

  3. Python安装模块的几种方法

    一.方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py i ...

  4. GCC的__attribute__ ((constructor))和__attribute__ ((destructor))

    通过一个简单的例子介绍一下gcc的__attribute__ ((constructor))属性的作用.gcc允许为函数设置__attribute__ ((constructor))和__attrib ...

  5. @vue/cl构建得项目下,postcss.config.js配置,将px转化成rem

    依赖包: postcss-pxtorem 配置: 在项目根目录下创建 postcss.config.js 配置如下: module.exports = () => ({ plugins: [ r ...

  6. 去掉word页眉上横线的技巧

    页眉下面会出现一条横线 双击页眉进入页眉页脚编辑状态.选定页眉内容.点击菜单栏[开始]-[清除一切格式]图标. 效果图: 方法二 进入页眉编辑状态,同时自动切换到了“设计”选项卡.同时注意观察,在页眉 ...

  7. JavaScript几个作用域问题

    1. var a = 0 ; function f(){ a = 1; console.log(a); //全局变量a } console.log(a); //全局变量a f(); 输出结果为:1 1 ...

  8. ionic3 npm install cordova error syscall rename

    突然出现cordova 不是内部或外部命令,也不是可运行的程序或批处理文件. 可是之前cordova安装后一直用的好好的啊,后来尝试重新安装cordova 出现这个错误.也尝试重新安装了最新版本的no ...

  9. 2019年2月备战春招最新大数据+Java岗位+人工智能岗位资料免费送【限时领取】

    不多说,直接上干货! 欢迎大家,关注微信扫码并加入我的3个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑        每天都有大量的学习视频资料和精彩 ...

  10. 输入一个URL之后发生了什么?

    简明扼要地说: DNS解析 TCP“三次握手”来建立连接 发送HTTP请求 服务器处理请求并返回HTTP报文 TCP“四次挥手”来关闭连接 客户端拿到资源并解析渲染页面