與Netbeans中的ALt-Shift-F類似,是否有一個在TestComplete中的ide中執行此操作?不確定這是否可能,或者是否有人可以在不離開TestComplete窗口的情況下將解決方案想到autoFormat。有沒有辦法在TestComplete中使用AutoFormat(Javascript)代碼?
我試圖讓下面的解決方案與http://jsbeautifier.org/一起用於TestComplete中的javascript/Jscript代碼。
謝謝
與Netbeans中的ALt-Shift-F類似,是否有一個在TestComplete中的ide中執行此操作?不確定這是否可能,或者是否有人可以在不離開TestComplete窗口的情況下將解決方案想到autoFormat。有沒有辦法在TestComplete中使用AutoFormat(Javascript)代碼?
我試圖讓下面的解決方案與http://jsbeautifier.org/一起用於TestComplete中的javascript/Jscript代碼。
謝謝
偉大的問題!
這沒有內置功能。因此,我們不應該期望任何解決方案100%方便 - 修改當前腳本編輯器內容(如果可能的話)並不是一件簡單的任務。所以,無論你做什麼,它仍然是某種妥協。
一般來說,任務有三方面:
獲取當前單元代碼。
格式化代碼。
將代碼放回單元。
根據我的瞭解,項目1和3只能通過創建一個TestComplete插件來完成 - 項目節點訪問的編輯並不是一件容易的事情。
更新:傻我!有一種方法可以訪問腳本編輯器代碼 - 我已經更新了下面的部分。
什麼會幫助我們避免切換到不同的應用程序,是Script Extensions:
我們在一個腳本擴展的形式創建一個自定義檢查點,並將其安裝到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 \擴展\ ScriptExtensions
要使用視圖下一個影像:
https://drive.google.com/uc?export=download&id=0B1x_73bHRc2Jc3RuLXFpTnlCSnc
問候
來吧,人 - 敢走!建議您的解決方案! :)複雜的部分已經被整理出來 - 您只需要使用代碼更改DesignTimeExecute例程實現。我甚至會在這裏開始賞金,但看起來我不能這樣做...... – Alex 2012-07-20 08:56:07
我的想法可能是人們不使用testComplete IDE?我經常在netbeans中拋出我的代碼,然後回到testComplete中對其進行格式化。 – 2012-07-23 00:38:54
http://jsbeautifier.org/我試圖合併這個,以便讓你的解決方案適用於Javascript – 2012-07-23 16:19:55