繁體中文
English 简体中文 繁體中文
Methodox 首頁

執行和主控台

執行

按一下工具列上的 Run(執行),或按 F5 或 Ctrl+E。執行期間,該按鈕顯示為 Stop,按一下 Stop 或按 Shift+F5 即可結束執行。執行屬於它的文件:執行期間切換標籤頁不會中斷執行,關閉文件則會結束執行。

執行的內容取決於圖:

  • Flows 圖執行其啟用的節點及其依賴的所有內容,不執行其他節點。
  • Function 執行每個節點,從 Input 到 Output。
  • 在 Interpreted 模式下,如果目前顯示的是 Routine、Events 圖或狀態機,Run 執行目前顯示的圖;其他情況下,執行文件的入口圖,即大綱中標記為 entry 的圖。
  • 在 Compiled 模式下,Run 始終執行入口圖。

執行結束時,狀態列會顯示執行情況,Properties 面板切換到 Run 檢視:顯示 Finished 或 Failed、耗時和所用模式、導致執行停止的問題,以及 Run log(即執行列印的內容)。執行從不更改文件;下一次執行從畫布上的內容開始。

要在解釋執行後以全尺寸檢視某個節點的結果,請選中該節點並按 Alt+Enter,或右鍵按一下它並選擇 Open preview in window:結果會在單獨的視窗中開啟。執行之前沒有可顯示的內容,狀態列會顯示 Run the graph first; there is nothing to preview yet.

兩種執行模式

工具列上的切換開關決定以兩種方式中的哪一種執行文件。每個標籤頁都有自己的設定,文件開啟時為 Interpreted;狀態列會在訊息旁顯示目前模式。將滑鼠懸停在開關的任意一半上,可以看到用幾行文字概括的區別。

Interpreted Compiled
執行方式 逐個節點遍歷圖 先將文件構建為程式,再執行該程式
速度 立即開始;處理繁重任務時較慢 構建需要片刻,之後執行快得多
Run 啟動的內容 目前顯示的 Routine、Events 圖或狀態機,否則為入口圖 始終為入口圖
畫布上 每個已執行的節點都顯示 done,有內容可顯示時還會顯示其結果的預覽;失敗的節點以紅色輪廓標出 無:編譯的程式只報告它列印和返回的內容
狀態列 4 nodes in 99 ms Ran compiled in 361 ms
主控台 每一行都註明列印它的節點 每一行都註明所屬的執行
除錯 斷點、暫停和單步執行 相同,前提是執行中有可以停下的斷點;請參閱除錯
停止 在下一個節點或語句之前停止 如果執行中有可以停下的斷點,則在下一條語句之前停止;否則程式無法中斷,其結果在返回時被丟棄

構建過程中使用解釋模式,每個節點都會顯示它產生的結果;當執行負擔較重時(長迴圈、大影像、大表格),或者需要檢查程式在編輯器之外執行時的表現時,切換到編譯模式。在編輯器之外,程式預設以編譯方式執行(請參閱匯出程式)。文件、其資料成員及初始值在兩種模式下的行為相同。

編譯執行後的第一個程式:開關處於 Compiled,節點下方沒有結果,Run 檢視顯示 Finished 和 Compiled,主控台的第 7 行註明屬於該次執行

啟用的節點

在 Flows 圖上,執行從標記為 Active 的節點開始,只執行它們需要的內容。選中一個節點並按 Space,可將其標記為啟用或取消啟用,也可以使用其 Properties 中的 Active 開關。畫布上方的一行會統計它們(例如 1 active · 4 will run),執行不會涉及的節點會變暗。沒有任何啟用節點時,無論哪種模式,執行都會顯示 Nothing ran (no active nodes)。

快取的結果

較慢的節點(例如載入大檔案或進行渲染的節點)可以在多次解釋執行之間保留其結果。選中該節點並按 Shift+Space,或在其 Properties 中開啟 Cache result:之後的執行會重用它產生的結果,跳過它及其之前的所有節點,直到它所依賴的內容發生變化。狀態列會統計重用的內容,例如 1 node in 5 ms · 10 reused。在解釋執行之後立即開啟此開關,會立即保留該次執行的結果。如果要特意重新計算(例如它讀取的檔案已更改),可將其關閉後再開啟。

主控台

執行列印的內容(Print Line、Print 以及其他任何寫出內容的節點)會輸出到畫布下方的主控台停靠欄。執行只是靜默列印時,停靠欄保持關閉:狀態列會統計行數,計數旁的圓點表示有未讀內容,畫布上方還會出現一條簡短提示。當執行寫入標準錯誤、執行失敗或等待你輸入內容時,停靠欄會自動開啟。

按 Ctrl+`,或按一下狀態列中的行數,即可開啟或關閉主控台。拖動其上邊緣可以調整高度。

Console 標籤頁頂部從左到右依次為:

控制元件 作用
Follow 使最新的一行始終可見。
類別列表 顯示 All(所有行),或只顯示執行的 Output、Standard error 或 Run errors(導致執行停止的失敗)。
Filter lines 只顯示包含所輸入內容的行。按 Esc 清空。
複製 複製目前顯示的行,包括失敗的完整詳細資訊。
清除 清空主控台,直到下一次執行。

每一行都帶有列印時間和列印它的物件,前後各有一行,註明執行所屬的文件和模式,以及執行結束的時間。主控台屬於執行,而不是標籤頁:當另一個文件位於前臺時,某個文件的執行暫停或結束,仍會顯示其輸出行。這些行可以選中,並用 Ctrl+C 複製。狀態列本身的訊息也可以複製:按一下它即可。

執行請求輸入時

Read Line 之類的節點會等待一行文字。停靠欄會開啟主控台,並在最後一行下方顯示一個輸入行,狀態列顯示 Waiting for input。輸入內容並按 Enter 傳送。Shift+Enter 開始第二行,每一行依次響應一次讀取。Ctrl+D 結束輸入,Shift+F5 停止執行。

其他標籤頁

  • Locals 和 Call stack 顯示暫停的執行所處的位置,請參閱除錯。
  • Search(Ctrl+F)可在目前文件、已開啟的文件或整個工作區中尋找文件、圖、節點(按標題、名稱或值)、成員、註解和分組。
  • References 列出讀取、設定或呼叫某個成員的每個節點:右鍵按一下資料成員的節點,或 Get 或 Set 節點,然後選擇 Find All References。
  • Terminal(Ctrl+Shift+`)是工作區資料夾中的命令列,請參閱視窗。