この記事では、vscode 翻訳プラグインを作成します。翻訳プラグイン インスタンスを実装することで、VS Code プラグイン開発の一般的な機能と方法に慣れることができます。困っている友達のお役に立てれば幸いです。
#この記事では、変換プラグイン インスタンスを実装することにより、VS Code プラグイン開発の一般的な機能と方法について説明します。もちろん、VS Code 公式 API および公式 GitHub Examples にアクセスして、表示して学習することもできます。 [推奨学習: "vscode 入門チュートリアル "]
要件
プログラマにとって、特に英語が苦手な私のような人にとって、翻訳は非常に一般的なニーズです。 . プログラマー。
- # は、中国語の翻訳を変数名
- で区切られた単語の翻訳に直接置き換えることができます。これは、ソース コード内のコメントの翻訳に使用されます
プロジェクトの初期化
スキャフォールディングを実行してプロジェクトを初期化するyo code
hello world
ディレクトリを作成した後、エントリ ファイルに移動して、エントリ ファイル./src/extension.ts を見つけます。
activemethod
export function activate(context: vscode.ExtensionContext) { console.log('Congratulations, your extension "vscode-fanyi" is now active!'); let disposable = vscode.commands.registerCommand( "vscode-fanyi.helloWorld", () => { vscode.window.showInformationMessage("Hello World from vscode-fanyi!"); } ); context.subscriptions.push(disposable); }active メソッドはプラグインのエントリ メソッドです。
vscode-fanyi.helloWorld メソッドが登録され、アクティベーションが設定されます。
package.json
Hello World Press
F5
Translation API
Translation API 私は Youdao Intelligent Cloud
を使用することにしました、もちろん誰でも選択できます他の翻訳 API を選択した理由は、登録時に 100 元の無料お試し金がもらえるためで、個人使用には十分です。最初にアプリケーションを作成し、サービスを自然言語翻訳サービスとして選択し、アクセス方法は API
作成が完了すると、アプリケーションIDと秘密鍵が取得できます。
"activationEvents": [ "onCommand:vscode-fanyi.helloWorld" ], "contributes": { "commands": [ { "command": "vscode-fanyi.helloWorld", "title": "Hello World" } ] }まず、この 3 つのパッケージをインストールします。このうち
crypto-js
は署名を生成しますaxios Nodejs リクエスト ライブラリ。
インストール
import CryptoJS from "crypto-js"; import axios from "axios"; import querystring from "querystring"; function truncate(q: string): string { var len = q.length; if (len <= 20) { return q; } return q.substring(0, 10) + len + q.substring(len - 10, len); } async function youdao(query: string) { var appKey = "3dde97353116e9bf"; var key = "xxxxxxxxxx"; //注意:暴露appSecret,有被盗用造成损失的风险 var salt = new Date().getTime(); var curtime = Math.round(new Date().getTime() / 1000); // 多个query可以用\n连接 如 query='apple\norange\nbanana\npear' var from = "AUTO"; var to = "AUTO"; var str1 = appKey + truncate(query) + salt + curtime + key; var sign = CryptoJS.SHA256(str1).toString(CryptoJS.enc.Hex); const res = await axios.post( "http://openapi.youdao.com/api", querystring.stringify({ q: query, appKey, salt, from, to, sign, signType: "v3", curtime, }) ); return res.data; }クエリ結果
正しい場合、翻訳に存在する必要があります
yarn add crypto-js axios querystringその後登録を変更します イベントは非同期で返されます
{ "errorCode":"0", "query":"good", //查询正确时,一定存在 "translation": [ //查询正确时一定存在 "好" ], "basic":{ // 有道词典-基本词典,查词时才有 "phonetic":"gʊd", "uk-phonetic":"gʊd", //英式音标 "us-phonetic":"ɡʊd", //美式音标 "uk-speech": "XXXX",//英式发音 "us-speech": "XXXX",//美式发音 "explains":[ "好处", "好的", "好", ] }, }デバッグ結果を見てみましょう
単語の置換
最初に選択したテキストを取得し、次に翻訳し、最後に翻訳が完了した後に元のテキストを置き換えます。 let disposable = vscode.commands.registerCommand(
"vscode-fanyi.helloWorld",
async () => {
const res = await youdao(
'Congratulations, your extension "vscode-fanyi" is now active!'
);
vscode.window.showInformationMessage(res.translation[0]);
}
);
context.subscriptions.push(disposable);
package.json の構成に従いますexport function activate(context: vscode.ExtensionContext) { context.subscriptions.push( vscode.commands.registerCommand("vscode-fanyi.replace", async () => { let editor = vscode.window.activeTextEditor; if (!editor) { return; // No open text editor } let selection = editor.selection; let text = editor.document.getText(selection);//选择文本 //有选中翻译选中的词 if (text.length) { const res = await youdao(text); //vscode.window.showInformationMessage(res.translation[0]); editor.edit((builder) => { builder.replace(selection, res.translation[0]);//替换选中文本 }); } }) ); }右クリック メニューを追加し、キーボード ショートカットをバインドします。下の図は、vscode 公式メニューのグループ化です。グループ化します。修正されたコードのセクションで
#効果を見てみましょう
コードワードの翻訳
VS コードは、provideHover を提供します。マウスがその上に移動すると、現在の単語に基づいていくつかの特定の操作を実行できます。ただし、この翻訳シナリオでは、単一の単語では十分ではないため、選択した単語に基づいて翻訳されます。コードを見てみましょう。 "activationEvents": [
"onCommand:vscode-fanyi.replace"
],
"contributes": {
"commands": [
{
"command": "vscode-fanyi.replace",
"title": "翻译"
}
],
"keybindings": [
{
"command": "vscode-fanyi.replace",
"key": "ctrl+t",
"mac": "cmd+t",
"when": "editorTextFocus"
}
],
"menus": {
"editor/context": [
{
"when": "editorTextFocus",
"command": "vscode-fanyi.replace",
"group": "vscode-fanyi"
}
]
}
},
MarkdownString が html に対応していれば、翻訳結果の音声も入れられるのではないかと思っていたのですが、非対応でした。同じような機能をやっている友人はいないでしょうか。コメントエリア。 最も重要な手順は、package.json
のactivationEvents を
"=onStartupFinished に変更することです。これは、
にあります。ドキュメントは .
で見つかりました
此激活事件将被发出,并且相关扩展将在VS代码启动后的某个时间被激活。这类似于激活事件,但不会降低VS代码启动的速度。当前,此事件在所有激活的扩展完成激活后发出。
"activationEvents": [ "onStartupFinished" ],
效果
驼峰转换
如果是变量是驼峰命名,可能无法翻译,需要转换下成空格
function changeWord(text: string): string { if (!text.includes(" ") && text.match(/[A-Z]/)) { const str = text.replace(/([A-Z])/g, " $1"); let value = str.substr(0, 1).toUpperCase() + str.substr(1); return value; } return text; }
自定义配置
将有道 appKey 和 appSecret 改成用户扩展配置, 在下 package.json
中的配置 contributes
添加 configuration
配置
"configuration": { "title": "Vscode fanyi", "type": "object", "properties": { "vscodeFanyi.youdaoApiname": { "type": "string", "description": "youdao appKey" }, "vscodeFanyi.youdaoApikey": { "type": "string", "description": "youdao appSecret" }, } }
就可以在扩展下方填入配置了
然后在代码中 获得配置,并传入到原先的翻译函数中就可以了
const config = vscode.workspace.getConfiguration("vscodeFanyi"); const appKey = config.get("youdaoAppkey") as string; const appSecret = config.get("youdaoAppSecret") as string;
小结
本插件与 comment-translate 对比
1、API 不同
本插件目前只支持有道,用完免费相当于是付费
comment-translate 支持百度谷歌和必应,是免费API
2、实现方式不同
本插件是利用 provideHover 划词翻译,实现起来比较简单
comment-translate 是hover 翻译,使用 Language Server Extension Guide 实现起来比较复杂
vscode 使用范围在扩大,从extensions market 市场上也可以发现,各种功能的插件基本都很齐全。本篇只介绍了其功能的冰山一角,同时 vscode extensions 开发门槛不高,欢迎大家尝试,或者将有意思的 extensions 推荐在评论区。
希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。
更多关于VSCode的相关知识,请访问:vscode教程!!
以上がVSCode で翻訳プラグインを開発する方法を段階的に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

パフォーマンスとリソースの使用におけるVisualStudioとVSCodeの違いは、主に以下に反映されています。1。起動速度:VSCODEは高速です。 2。メモリの使用量:VSCODEは低くなります。 3。CPUの使用法:VisualStudioは、コンピレーションとデバッグ中に高くなります。選択するときは、プロジェクトの要件と開発環境に基づいて決定する必要があります。

VisualStudio(VS)は、Microsoftが開発した強力な統合開発環境(IDE)であり、C#、C、Pythonなどの複数のプログラミング言語をサポートします。1)コード編集、デバッグ、バージョン、テストなどの機能セットを提供します。 2)強力な編集者とデバッガーを介したプロセスコード、RoslynおよびClang/MSVCコンパイラプラットフォームを使用した高度なコード分析と再構築をサポートします。 3)基本的な使用法は、C#コンソールアプリケーションの作成に似ており、高度な使用は多型を実装するようなものです。 4)ブレークポイントの設定、出力ウィンドウの表示、インスタントウィンドウの使用により、一般的なエラーをデバッグできます。 5)パフォーマンス最適化の提案には、非同期プログラミングの使用、コード再構成、パフォーマンス分析が含まれます。

VisualStudioでは、コードをコンパイル、テスト、展開する手順は次のとおりです。1。コンパイル:VisualStudioのコンパイラオプションを使用して、ソースコードを実行可能ファイルに変換し、C#、C、Pythonなどの複数の言語をサポートします。 2。テスト:組み込みのMSTESTとNUNITを使用してユニットテストを実行して、コードの品質と信頼性を向上させます。 3。展開:セキュリティとパフォーマンスを確保するために、Web展開、Azure展開などを通じて、開発環境から生産環境へのアプリケーションを転送します。

VisualStudioismicRosoft'sFlagshipide、サポートMultipleMingLanguagesAndenHancingCodingEfficiency.1)itOffersfeatureSlisensensenseforCodeprediction、Multi-tabbedinterfaceforprojectmanagement、およびtoolsfordebugging、Refactoring、およびversionControl.2

VisualStudioの無料バージョンと有料バージョンの主な違いは、機能の豊富さとサポートされているサービスです。無料版(コミュニティ)は、個々の開発者や小チームに適しており、基本的な開発ツールを提供しています。有料版(プロフェッショナルおよびエンタープライズ)は、大規模なプロジェクトやエンタープライズレベルの開発に適した高度なデバッグやチームコラボレーションツールなどの高度な機能を提供します。

VisualStudioCommunityeditionは、個々の開発者、小規模チーム、教育機関に適した無料のIDEです。 1)コード編集、デバッグ、テスト、バージョンの制御などの機能を提供します。 2)Roslynコンパイラプラットフォームに基づいて、複数のプログラミング言語をサポートし、GITとTFVCを統合します。 3)高度な機能には、ユニットテストが含まれます。最適化の提案には、不要な拡張機能の電源を切ること、軽量エディターの使用が含まれます。

VisualStudioは、Microsoftが開発した統合開発環境(IDE)であり、C#、C、Pythonなどを含むさまざまなプログラミング言語をサポートしています。 2.デバッガーでは、ブレークポイントの設定、ステップバイステップのコード実行、および問題の識別が可能になります。 3。初心者にとっては、シンプルなコンソールアプリケーションを作成することは、始めるのに最適な方法です。 4.高度な使用には、プロジェクト管理や依存関係の注入などの設計パターンの適用が含まれます。 5.一般的なエラーは、デバッグツールを段階的に解決できます。 6.パフォーマンスの最適化とベストプラクティスには、コードの最適化、バージョン制御、コード品質検査、自動テストが含まれます。

VisualStudioは、大規模なプロジェクトやエンタープライズレベルのアプリケーション開発に適していますが、VSCODEは迅速な開発と多言語サポートに適しています。 1. VisualStudioは、包括的なIDE環境を提供し、Microsoft Technology Stackをサポートします。 2.VSCODEは、柔軟性とスケーラビリティを強調し、クロスプラットフォームをサポートする軽量エディターです。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









