2

Netbeans の ALt-Shift-F に似ていますが、TestComplete の IDE でこれを正しく行う方法はありますか? これが可能かどうか、または TestComplete ウィンドウを離れずに autoFormat の回避策を考えられるかどうかは不明です。

TestComplete の javascript / Jscript コードのhttp://jsbeautifier.org/で動作するように、以下のソリューションを取得しようとしています。

ありがとう

4

2 に答える 2

2

素晴らしい質問です。

そのための組み込み関数はありません。そのため、100% 便利なソリューションを期待するべきではありません。現在のスクリプト エディターの内容を変更するのは簡単なことではありません (可能な場合)。ですから、何をするにしても、それはある種の妥協になります。

一般に、タスクは 3 つあります。

  1. 現在のユニットコードを取得します。

  2. コードをフォーマットします。

  3. コードを本体に戻します。

私の理解では、項目 1 と 3 は TestComplete プラグインを作成することによってのみ達成できます。プロジェクト ノードのエディターにアクセスするのは簡単なことではありません。

更新:愚かな私!スクリプト エディター コードにアクセスする方法があります。以下の部分を更新しました。

別のアプリへの切り替えを回避するのに役立つのは、スクリプト拡張機能です。

  • スクリプト拡張の形式でカスタム チェックポイントを作成し、TestComplete にインストールします。その結果、ツールバーにボタンが表示され、クリックしてコードを呼び出すことができます。

  • 設計時のアクションでは、エディターの内容を読み取るコードを呼び出し、外部コードの書式設定機能を使用して、エディターの内容を書式設定されたコードに置き換えます。

他の TestComplete ユーザーが提案できる実装を見るのは非常に興味深いでしょう! 手始めに、外部の Web サイトを使用して VBScript コード ( http://www.vbindent.com/ )をフォーマットすることを含むソリューションを投稿しています。投稿のスターターがおそらく JScript を使用していることは知っていますが、まだ JScript フォーマッターを見つけていません。

私の解決策は、単純なスクリプト拡張です。ここにファイルを投稿することはできないため、2 つのスクリプト拡張ファイルのコードを投稿します。

記述ファイル:

<!-- Description.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<ScriptExtensionGroup>
  <Category Name="Checkpoints">
    <ScriptExtension Name="VBScript Code Indent" Author="SmartBear Software" Version="0.1" HomePage="smartbear.com">
      <Script Name="VBIndent.js">
        <DesignTimeAction Name="Indent Current VBScript Unit" Routine="DesignTimeExecute"/>
      </Script>
      <Description>
        Indents VBScript code in the currently active unit.
      </Description>
    </ScriptExtension>
  </Category>
</ScriptExtensionGroup>

コードファイル:

// VBIndent.js
function DesignTimeExecute()
{
  if (CodeEditor.IsEditorActive)
  {
    var newCode = IndentVBSCode_Through_VBIndent(CodeEditor.Text);
    if (null == newCode)
      return;
    CodeEditor.Text = newCode;
  }
}

function IndentVBSCode_Through_VBIndent(codeToIndent)
{
  var URL_VBIndent = "http://www.vbindent.com/?indent";

  var httpObj = Sys.OleObject("MSXML2.XMLHTTP");

  httpObj.open("POST", URL_VBIndent, false);
  httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  httpObj.send("thecode=" + escape(codeToIndent));

  var responseText = httpObj.responseText;

  // Extract the indented code from the response
  var rx = /<textarea name=\"thecode\".*?>((.*\n)*?)<\/textarea>/;
  matches = rx.exec(responseText);
  if (null == matches)
  {
    return null;
  }
  codeIndented = matches[1];
  return codeIndented;
}

これらのファイルを作成し、「\Bin\Extensions\ScriptExtensions\VBIndent」のような場所に置き、「ファイル | スクリプト拡張機能のインストール | リロード」をクリックすると、新しい「現在の VBScript ユニットのインデント」項目がカスタム ファイルに表示されます。ツール ツールバーのチェックポイント ドロップダウン ボタン。要素をクリックすると、現在アクティブなエディターで VBScript コードがフォーマットされます。

したがって、これは、ソリューションがどのように見えるかを明確に示すためのものです。より良い提案は大歓迎です!考えを共有する!

于 2012-07-19T11:01:50.160 に答える
-2

ご参考までに

終わったよ。あなたの投稿に基づいています。

JSFormat.tcx

https://drive.google.com/uc?export=download&id=0B1x_73bHRc2Jcm8wbTJ2dUpZQTQ

拡張機能をインストールするには、添付ファイル JSFormat.tcx を C:\Program Files (x86)\SmartBear\TestComplete 10\Bin\Extensions\ScriptExtensions にコピーします

次の画像を表示を使用するには:

https://drive.google.com/uc?export=download&id=0B1x_73bHRc2Jc3RuLXFpTnlCSnc

よろしく

于 2015-06-26T07:33:48.280 に答える