Sourcetrail提供源碼管理功能,可以在軟件創建源碼項目,可以設置項目索引,方便以后在這款軟件處查詢源碼,源碼內容都是可以復制使用的,無論是個人還是企業都可以通過這款軟件建立源碼庫,您可以在軟件創建c++項目,可以創建C語言項目,可以創建Java項目,可以創建Python項目,提供類似思維導圖的方式可視化您的代碼項目,代碼項目都是可以建立索引的,鼠標點擊相關的來源組就可以展開項目查看源碼,索引建立完畢就可以在圖形化的界面查看索引符號,在搜索欄可以很容易地訪問所有的索引符號。使用它來查找您要研究的所有類和函數!
Sourcetrail軟件功能
1 為您的源代碼編制索引
Sourcetrail的深入靜態分析可以找到你的源代碼文件中的所有定義和引用。要啟動靜態代碼分析器,你可以導入現有的構建配置或選擇手動項目設置。
2 查找任何符號
使用Sourcetrail的搜索欄可以快速找到整個代碼庫中的任何符號。模糊的代碼搜索引擎只需敲幾下鍵盤就能給你提供最佳匹配。
3 視覺上探索依賴關系
圖形可視化提供了對任何感興趣的類、方法、字段等及其所有關系的快速概述。依賴關系圖是完全互動的。通過關注相關的節點和邊,使用它在代碼庫中移動。
4 瀏覽你的源代碼
最后,代碼視圖在一個排列整齊的代碼片斷列表中保存了焦點元素的所有實現細節。進一步作用域和突出局部變量,或關注任何其他遇到的引用或元素。
5 連接你的源代碼編輯器
通過插件將Sourcetrail與您喜愛的源代碼編輯器同步。這樣就可以在編寫和探索之間輕松切換。
Sourcetrail軟件特色
Sourcetrail是:
自由
離線工作
在Windows,macOS和Linux上運行
支持C,C ++,Java和Python
提供一個SDK(SourcetrailDB)來編寫自定義語言擴展
可連接的編輯器:
Atom,Clion,Eclipse,Emacs,IntelliJ IDEA,Neovim,PyCharm,QtCreator,Sublime Text,Vim,Visual Studio,Visual Studio Code;
Sourcetrail使用說明
1、您正在查看Sourcetrail的代碼視圖,該視圖通常顯示源代碼,但是每次加載新項目時,它都會提供一個快速摘要,以估算項目的大小。 這是一個相當小的項目。 如下面的數字所示,它僅包含幾百行代碼。
2、如您所知,“代碼視圖”顯示了與您當前處于活動狀態的符號相關的代碼片段。 這些摘錄結合一些上下文來顯示相關行。
如果您在代碼段上下文中發現了一些有趣的內容,則可以通過單擊鼠標左鍵激活該符號。 這樣,您就可以更深入地研究代碼庫。
3、您是否想過生命,宇宙和一切的意義是什么? 單擊相應的符號進行查找。請單擊“代碼視圖”右上角的“片段列表模式”按鈕。
4、這是Sourcetrail教程的中心。 在這里,您可以短途旅行,探索Sourcetrail的不同部分。 最重要的是:您將了解Sourcetrail的所有不同部分是如何交互的。
下面的函數引用了所有可用的教程。 因此,選擇一個并立即采取行動。
5、我們剛剛談到了Sourcetrail,它為重要的代碼行提供了上下文。
但是感覺好像這里缺少什么。 什么是“ the_question”? 它是從哪里來的?
3-擴大范圍
您看到此代碼段的第一行了嗎? 我的意思是說,只有兩個點作為行號,并且顯示為“ deep_thought”。 實際上,這就是封裝代碼段的函數范圍的名稱。 通過單擊該行,您可以告訴Sourcetrail擴展視圖以顯示整個范圍。
6、沒有更多內容
在此階段,您將看到整個文件,并且無法擴展其他上下文。
在本簡介的最后部分,請看一下在哪里使用了“ unrelated_but_very_important()”函數
7、6-片段和文件
似乎在同一文件中的兩個不同位置調用了此函數。 當兩個不同的片段位于同一文件中時,它們共享一個文件框。 左側的行號指示每個代碼段在文件中的位置。
8-合并片段
每個摘錄的第一行都顯示了其父級范圍的名稱。
如果要顯示下面兩個片段之間的行,則可以擴展上方片段的范圍以顯示整個文件,也可以告訴下方片段以顯示其范圍。
現在嘗試這些方法之一。
9、1-圖形教程
在Sourcetrail的默認窗口布局中,圖形顯示在代碼旁邊的左側。 它顯示項目的結構,其中所有命名符號都是節點,所有關系都是邊。 像代碼視圖一樣,它僅顯示當前活動的符號以及所有傳入和傳出的依賴關系。
如果要查看存在哪些節點和邊類型,請單擊圖視圖右下角的“?”圖標以顯示圖例。
10-我如何瀏覽圖形
您可以通過在感興趣的節點上單擊鼠標左鍵來激活新符號。例如:查找函數“ where_am_i_drawn()”的調用位置,移至圖形并單擊該函數的節點。
11-做得好
您激活了一個節點,并且圖形和代碼視圖均已相應更新。
請注意,即使Sourcetrail提供了圖形視圖,它也不會消除對讀取代碼的需求。 圖形視圖非常適合快速了解關系和導航代碼,但是一旦發現您感興趣的內容,您仍然應該考慮使用代碼視圖實際閱讀所有重要細節。
12-隱藏元素
為了不向您泛濫,圖表隱藏了很多元素。 您是否看到例如“ ClassWithHiddenMembers”? 實際上,它包含的成員比您當前看到的更多。 隱藏對當前上下文不重要的成員。 不過,您可以通過單擊班級名稱旁邊的箭頭來顯示它們。 立即嘗試并閱讀這些成員的姓名。
Sourcetrail教程
書簽管理器
使用書簽管理器查看和激活您的書簽。書簽在其相應類別下顯示為行。如果書簽沒有類別,它將被放置在默認類別中。僅當將鼠標懸停在相應的行上時,用于刪除/編輯類別或書簽的按鈕才可見。書簽存儲在項目文件.srctrlbm旁邊的單獨.srctrlprj文件中。
互動方式:
通過單擊名稱來激活書簽。
通過在書簽行中單擊來打開/折疊書簽注釋。
單擊編輯按鈕以更改書簽的內容。
單擊書簽上的“刪除”按鈕以刪除書簽。
通過單擊類別來打開/折疊類別。
單擊類別中的“刪除”按鈕以刪除該類別以及其中的所有書簽。
更改顯示過濾器以在節點和/或邊的顯示之間切換。
更改排序以更改書簽在其類別內的順序。
狀態檢視
此視圖提供了不同的選項卡,其中包含有關您的項目的。默認情況下,此視圖是隱藏的。
互動方式:
單擊頂部的標題在選項卡之間切換。
單擊x右上角的-按鈕以關閉狀態視圖。
狀態標簽
下表提供了有關運行Sourcetrail時狀態更新的一些。弄清為什么某些東西與預期的方式有所不同可能會有所幫助。
互動方式:
雙擊表格單元格以選擇要復制和粘貼的文本。
使用下面的復選框按類型過濾顯示的消息。
單擊Clear Table以刪除表中的所有行。
錯誤標簽
此列表顯示在索引編制過程中發生的錯誤。
提供以下:
類型:錯誤或致命。致命錯誤會導致很多丟失,因為索引器必須在此錯誤處停止。
錯誤
文件
電話號碼
已編制索引:文件是否在已編制索引的文件中。
轉換單位:在被索引時產生此錯誤的源文件。
互動方式:
單擊錯誤行以在代碼視圖中查看錯誤的位置。
單擊列標題以按此數據對錯誤行進行升序或降序排序。
雙擊表格單元格以選擇要復制和粘貼的文本。
使用下面的復選框以某些條件過濾顯示的錯誤。
單擊“編輯項目”以打開“編輯項目”對話框。
工具提示
在“圖形視圖”和“代碼視圖”中顯示有關懸停的符號的
提供以下:
符號類型
可見(例如公共或私人)
參考計數
符號名稱
全局變量和字段的可點擊類型名稱。
具有函數和方法的可單擊返回類型名稱和參數類型名稱的完整簽名。
互動方式:
單擊符號名稱將其激活。
項目設置
Sourcetrail中的項目設置是通過“項目設置向導”完成的,可以通過在“開始”窗口中單擊New Pject或通過作從“項目菜單”中進行訪問New Pject。
通過項目設置向導,您可以創建一個新的Sourcetrail項目。它允許定義Sourcetrail項目的名稱和位置,并添加幾個Source Gups來定義將為哪些源文件建立索引。有幾種創建源組的方法。對于大多數項目,僅添加一個源組就足夠了。
將源組添加到項目后,此對話框可讓您編輯它們的配置,以及刪除或復制它們。
環境描述
Sourcetrail項目名稱:項目的名稱。這也將是.srctrlprjSourcetrail生成的文件的名稱。
Sourcetrail項目位置:從對話框中選擇項目文件的位置。
互動方式:
單擊取消或按ESC將關閉窗口并中止設置過程。
單擊添加源組將帶您創建一個新的源組。
單擊常規將帶您到項目的名稱和位置設置。
單擊“源組”將使您可以編輯其配置并更改其名稱。
單擊+“源組”列表下方,將帶您創建新的源組。
單擊-“源組”列表下方的將刪除當前選定的源組。
單擊?“源組”列表下方將復制當前選定的“源組”。
單擊創建將關閉此窗口并創建新項目。
編輯項目時也使用此窗口。您可以從左側列表中選擇一個源組,編輯其內容。另外,您還可以將某些源組的活動標志設置為false,這樣在刷新項目時就不會為它們建立索引。
互動方式:
更改源組的名稱。
激活/停用用于索引的源組。
更改在“源組”安裝過程中定義的所有設置。
選擇源組類型
創建新的源組時,您可以根據項目語言在不同的設置方法之間進行選擇。請查看我們的快速入門指南部分,以獲取有關選擇正確的源組類型的幫助。
互動方式:
選擇代碼項目中使用的語言。
選擇源組類型將決定您如何輸入所有必需的。
單擊取消或按ESC將關閉窗口。
單擊下一步將帶您進入設置過程的下一步。
空的C / C ++源組
空的C / C ++源組具有以下配置選項:
環境描述
標準:
選擇用于索引項目的語言標準。通常,此處會預先選擇最新的語言標準。
交叉編譯:
選中使用特定目標,使用下拉框指定特定目標平臺。請查看有關交叉編譯的clang編譯器文檔以獲取更多。
文件和目錄索引:
這些路徑定義了Sourcetrail索引的文件和目錄。提供一個目錄以遞歸方式添加所有包含的源文件和頭文件。如果項目的源代碼位于一個位置,但是生成的源文件位于另一個位置,則還需要添加該目錄。您可以通過$ {ENV_VAR}使用環境變量。
排除的文件和目錄:
這些路徑定義了將在索引編制中遺漏的文件和目錄。
提示:
您可以使用*表示除或以外的字符的通配符/(例如,src/*/test.h匹配src/app/test.h但不匹配src/app/widget/test.h或src/test.h)
您可以使用**表示任意字符的通配符(例如,以及或src**test.h匹配)src/app/test.hsrc/app/widget/test.hsrc/test.h
您可以通過$ {ENV_VAR}使用環境變量
源文件擴展名:
為源文件定義有效的擴展名,包括點.cpp。Sourcetrail將僅嘗試索引與這些擴展名之一匹配的文件。
包含路徑:
包含路徑用于解析已索引的源文件和頭文件中的#include指令。這些路徑通常使用’-I’或’-iquote’標志傳遞給編譯器。在整個項目中添加所有與#include指令相關的路徑。如果相對于項目的根目錄指定了所有#include指令,請在此處添加該根目錄。如果您的項目還包含來自外部庫的文件(例如boost),請也添加這些目錄(例如,添加“ path / to / boost_home / include”)。您可以通過$ {ENV_VAR}使用環境變量。
全局包含路徑:
除了項目特定的“包含路徑”之外,“全局包含路徑”還將在您的所有項目中使用。這些路徑通常使用’-isystem’標志傳遞給編譯器。使
框架搜索路徑(僅適用于macOS):
這些路徑用于查找.framework項目使用的文件
全局框架搜索路徑(僅適用于macOS):
這些框架搜索路徑將在您的所有項目中使用。
編譯器標志:定義在索引期間使用的其他編譯器標志,包括破折號(例如,用于-DRELEASE添加#definefor RELEASE)。
預編譯的頭文件:
選擇應用于生成預編譯頭文件的頭文件的路徑。預編譯頭文件將作為預索引步驟生成。如果沒有提供路徑,則不會生成任何預編譯的頭文件。
預編譯的標頭標志:
定義是否應將已經提供的編譯器標志用于預編譯頭文件的生成,并定義其他標志僅用于預編譯頭文件的生成。