、私たちが見ていることは、組み込みのWebベースのEssentialsの機能。私はfeature-requestを提出して、これを利用できるようにしました、うまくいけば近い将来です。一方
、次
Visual Commanderオートメーションスニペットは輸入をES6するすべての参照を置き換えることができます。
using EnvDTE;
using EnvDTE80;
using System.Text.RegularExpressions;
public class C : VisualCommanderExt.ICommand
{
// Called by Visual Commander extension.
public void Run(EnvDTE80.DTE2 DTE, Microsoft.VisualStudio.Shell.Package package)
{
TextDocument doc = (TextDocument)(DTE.ActiveDocument.Object("TextDocument"));
var p = doc.StartPoint.CreateEditPoint();
string s = p.GetText(doc.EndPoint);
p.ReplaceText(doc.EndPoint, this.ReplaceReferences(s), (int)vsEPReplaceTextOptions.vsEPReplaceTextKeepMarkers);
}
// Converts "reference" syntax to "ES6 import" syntax.
private string ReplaceReferences(string text)
{
string pattern = "\\/\\/\\/ *<reference *path *= *\"([^\"]*)(?:\\.ts)\" *\\/>";
var regex = new Regex(pattern);
var matches = Regex.Matches(text, pattern);
return Regex.Replace(text, pattern, "import {} from \"./$1\";");
}
}
この(読みやすく、ダブルバックスラッシュなし)で置き換える実行するために使用する正規表現を:
\/\/\/ *<reference *path *= *"([^"]*)(?:\.ts)" *\/>
このコードは、効果的に非常に、現在アクティブなドキュメントにES6の輸入にすべての参照のコメントを変換しますが便利です。
既知の問題:
- それは、対応する行に他のテキストが先行する場合のVisual Studioによって認識されない
reference
タグを含むコメントが、それはまだこのスニペットに置き換えられ
reference
タグの後の追加テキストが有効ですが、置換後にはもはやコメントではないため、構文エラーが発生します。
(.ts
ファイルがドラッグアンドドロップされたときスニペットはウェブのEssentialsによって生成された基準タグで使用される場合、これらの問題のいずれも関連している。)