有没有一种方法可以在TestComplete中自动格式化(Javascript)代码

Is there a way to AutoFormat (Javascript) code in TestComplete?

本文关键字:格式化 Javascript TestComplete 代码 一种 方法 有没有      更新时间:2023-12-06

类似于Netbeans中的ALt-Shift-F,在TestComplete中的ide中是否有这样的方法?不确定这是否可能,或者是否有人可以在不离开TestComplete窗口的情况下想出自动格式化的解决方法。

我正在尝试使用以下解决方案http://jsbeautifier.org/用于TestComplete中的javascript/Jscript代码。

感谢

好问题!

没有内置的功能。因此,我们不应该期望任何解决方案都是100%方便的——修改当前脚本编辑器内容(如果可能的话)并不是一项简单的任务。所以,无论你做什么,它仍然是某种妥协。

一般来说,任务有三个方面:

  1. 获取当前单位代码。

  2. 设置代码格式。

  3. 将代码放回装置。

根据我的理解,第1项和第3项只能通过创建TestComplete插件来完成——访问项目节点的编辑器不是一件容易的事情。

更新:愚蠢的我!有一种方法可以访问脚本编辑器代码-我已经更新了下面的部分

帮助我们避免切换到不同应用程序的是脚本扩展:

  • 我们以脚本扩展的形式创建了一个自定义检查点,并将其安装到TestComplete。结果,我们在工具栏上得到了一个按钮,我们可以单击它来调用我们的代码。

  • 在设计时操作中,我们调用一些读取编辑器内容的代码,然后使用外部代码格式化功能,并用格式化的代码替换编辑器内容。

看看其他TestComplete用户可以建议的实现会非常有趣!首先,我发布了一个解决方案,其中包括使用外部网站来格式化VBScript代码(http://www.vbindent.com/)。我知道这篇文章的开头可能使用了JScript,但我还没有找到JScript格式化程序。

我的解决方案是一个简单的脚本扩展。我不能在这里发布文件,所以我将发布两个脚本扩展文件的代码:

描述文件:

<!-- 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代码。

因此,这是为了清楚地了解解决方案的样子。欢迎提出更好的建议!分享你的想法!

FYI

我做到了。根据你的帖子。

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

问候