vscode- 语言检测
一个npm软件包,使用机器学习来检测源代码语言. 电源 @ yoeo (英语)是因为 猜测朗 样板!
使用量
首先在您的工程中安装 :
npm install --save @vscode/vscode-languagedetection
# or using yarn
yarn add @vscode/vscode-languagedetection
然后即时化一个模块操作,运行一个字符串代码上的模型:
import { ModelOperations } from "@vscode/vscode-languagedetection";
const modulOperations = new ModelOperations();
const result = await modulOperations.runModel(`
function makeThing(): Thing {
let size = 0;
return {
get size(): number {
return size;
},
set size(value: string | number | boolean) {
let num = Number(value);
// Don't allow NaN and stuff.
if (!Number.isFinite(num)) {
size = 0;
return;
}
size = num;
},
};
}
`);
以便你们依次获得以下信任:
[
{ languageId: 'ts', confidence: 0.48307517170906067 },
{ languageId: 'rs', confidence: 0.10045434534549713 },
{ languageId: 'js', confidence: 0.07833506911993027 },
{ languageId: 'c', confidence: 0.045049071311950684 },
{ languageId: 'lua', confidence: 0.044198162853717804 },
{ languageId: 'cpp', confidence: 0.03847603127360344 },
{ languageId: 'cs', confidence: 0.03298814222216606 },
{ languageId: 'mm', confidence: 0.02999635599553585 },
{ languageId: 'html', confidence: 0.01874217577278614 },
{ languageId: 'sql', confidence: 0.01811739057302475 },
{ languageId: 'swift', confidence: 0.01418407540768385 },
{ languageId: 'pl', confidence: 0.014126052148640156 },
{ languageId: 'md', confidence: 0.01112559624016285 },
{ languageId: 'java', confidence: 0.009976979345083237 },
{ languageId: 'ps1', confidence: 0.009242385625839233 },
{ languageId: 'php', confidence: 0.008150739595293999 },
{ languageId: 'go', confidence: 0.0069260732270777225 },
{ languageId: 'tex', confidence: 0.006594990845769644 },
{ languageId: 'scala', confidence: 0.00619362760335207 },
{ languageId: 'py', confidence: 0.004240741487592459 },
{ languageId: 'r', confidence: 0.0033439004328101873 },
{ languageId: 'matlab', confidence: 0.0030552551615983248 },
{ languageId: 'css', confidence: 0.0026798006147146225 },
{ languageId: 'sh', confidence: 0.0023688252549618483 },
{ languageId: 'ipynb', confidence: 0.002114647999405861 },
{ languageId: 'bat', confidence: 0.0018151027616113424 },
{ languageId: 'hs', confidence: 0.001677449094131589 },
{ languageId: 'erl', confidence: 0.0014191442169249058 },
{ languageId: 'coffee', confidence: 0.000696933304425329 },
{ languageId: 'rb', confidence: 0.0006357143283821642 }
]
高级选项
默认情况下,此库将在Node.js工作. 它使用 fs 财务报告和审定财务报表 path 由 Node.js 提供的模块 model.json 文件和权重文件, group1-shard1of1.bin,这些包含在本 repo.
您可以使用以下两个可选参数来覆盖此行为: ModelOperations数字 :
modelJSONFunc?: () => Promise<any> // This must return a JSON.parse() object
weightsFunc?: () => Promise<ArrayBuffer>
这使得您可以覆盖这个软件包的模型加载行为,如果你碰巧处于非传统环境中的话. 举个例子,看看如何 VS代码正在做。 。 。 .
第三个参数是选项包:
minContentSize?: number- 用于语言检测的文件的最小字符数。 默认为20。 。 。 .maxContentSize?: number- 字符的最大数量 将使用 用于语言检测的文件。 默认为100000。 。 。 .
地方发展
从源头建设,遵循这些步骤:
- 清除仓库
- 运行
npm install - 运行
npm run watch
要进行测试,只需运行 npm test。 。 。 .
为了建立一个生产包:
- 运行
npm run build - 运行
npm pack
要发布此软件包, 请运行 npm publish。 。 。 .
捐款
该项目欢迎各方的贡献和建议。 大多数捐款要求您同意 撰稿人许可协议(CLA)宣布,你有权并且实际上确实给了我们 有权使用您的贡献。 详情请访问 https://cla.opensource.microsoft.com 互联网档案馆的存檔,存档日期2014-10-02。 。 。 .
当您提交拉拉请求时, CLA bot 会自动确定您是否需要提供 a CLA并适当装饰PR(如状态检查、评论)。 只要听从指示 由机器人提供。 你只需要用我们的CLA 一次就能完成.
该项目通过了 Microsoft 开源行为守则。 。 。 . 更多信息见 《行为守则》 或者说 联系人 打开码@ microsoft.com 并附上任何其他问题或评论.
商标
本项目可能包含项目,产品或服务的商标或标志. 授权使用微软 商标或标志必须遵循 微软的商标和品牌准则。 。 。 . 在这个项目的修改后版本中使用微软商标或标志不得造成混淆或暗示微软赞助. 任何使用第三方商标或标志的行为都必须遵守这些第三方的政策.