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. 微信小程序实现显示和隐藏控件-头像-取值-bindblur事件

    微信小程序实现显示和隐藏控件 .wxml: <view class=" {{showOrHidden?'show':'hidden'}}"></view> ...

  2. [Postman]生成代码段(17)

    在Postman中完成并保存您的请求后,您可能希望从您自己的应用程序发出相同的请求.Postman允许您生成各种语言和框架的代码片段,以帮助您实现此目的.您需要单击蓝色发送按钮下的**代码**链接以打 ...

  3. 埃航和737MAX坠毁:软件优先级问题

    事件背景: 2019年3月10日,埃塞俄比亚航空公司一架波音737MAX8飞机发生坠机,机上157人全部遇难,包括8名中国公民.这是继去年10月29日印尼狮航空难事故之后,波音737MAX8飞机在五个 ...

  4. Ubuntu 18.04搭建Git服务器

    学习链接:博客园.廖雪峰 一 前言 前面已经贴了两个链接,为什么还要再写一篇呢,因为可能由于个人能力问题,我觉得上面两篇写的都有点简略,有些地方不太好理解,并不能一次性成功搭建,所以想根据自己踩过的坑 ...

  5. Net Core集成Exceptionless分布式日志功能以及全局异常过滤

    Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...

  6. Android--Service之AIDL传递复杂对象

    前言 Android的AIDL不仅可以在绑定服务中传递一些Android规定的数据类型的数据,还可以传递一些复杂类型的数据.但是与传递系统允许的数据类型相比,复杂类型数据的传递要做更多的工作,本篇博客 ...

  7. Java集合框架总结—超详细-适合面试

    Java集合框架总结—超详细-适合面试   一.精简: A.概念汇总 1.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, ...

  8. HashMap源码之构造函数--JDK1.8

    构造函数 变量解释 capacity,表示的是hashmap中桶的数量,初始化容量initCapacity为16,第一次扩容会扩到64,之后每次扩容都是之前容量的2倍,所以容量每次都是2的次幂 loa ...

  9. 解决:MVC对象转json包含\r \n

    项目中对象转json字符串时,如下:JsonSerializerSettings jsetting = new JsonSerializerSettings(); jsetting.DefaultVa ...

  10. eclipse导入的项目resource包被当做成文件夹

    项目中遇到的问题: 导出的项目(错误) 原本应该是这样的 需要这样设置一下: 1  2 最后就变回来了!