代碼管理和編輯工具Source Insight 4.0使用介紹

Source Insight 4.0

一、什麼是SourceInsight

注意:SourceInsight 這款軟件,4.x版本相對於3.x版本有大幅度的更改,我這裏使用的是4.0版本。

SourceInsight 這款軟件,可以用來編輯代碼,在嵌入式Linux開發中,很多人用它來修改代碼和查看代碼,再將代碼同步到linux下,用嵌入式(一般是ARM for GNU toolchain)交叉編譯工具鏈來進行代碼編譯。

這款軟件是需要付費使用的(這一點我很不爽)。

可以使代碼關鍵字高亮顯示。

可以對代碼進行有效的組織和關聯。

可能你還是不明白用SourceInsight來幹嘛,簡單舉個例子,寫過代碼的你都知道,你有一個代碼工程,有很多個文件,你爲了找到一個全局變量或者函數,找老半天沒有找到。有了SourceInsight,你就直接雙擊這個函數或者全局變量,就可以跳到定義的地方。反正好處多多。

二.SourceInsight4.0的使用

創建一個SI工程管理代碼

  • 整體思路:告訴SI要解析哪些文件 -> 告訴SI這些文件在哪 -> 告訴SI文件選好了,解析它吧

  • 首先,這裏演示的是C代碼工程,其它編程語言也差不多。

  • 在解析C代碼工程時,你可能希望SI連 .CC.S結尾的文件也一同解析。那麼點擊 option -> File Type Options -> C/C++ Source File,我們在右邊添加 *.S;*.cc。這裏 *號是通配符,用英文;號隔開。

代碼類型設置

導入項目

  1. 點擊Project->New Project。
  2. 點擊Browse,選擇你的源代碼所在目錄。
  3. 給新建的Source Insight工程取個名字,然後點擊OK。
  4. 彈出窗口點擊OK,然後點擊Add Tree,添加目錄結構下所有文件到工程。最後點擊Close,項目就建立完成。
  5. SynchronizeFile,雙擊Project Files窗口中的文件,即可打開文件,進行閱讀或編輯。

新建一個項目

快捷鍵Alt+Shift+N可以打開新建項目對話框,然後根據提示填好項目存儲位置,源文件位置等,然後會出現添加刪除項目文件對話框,選中自己想要編輯和瀏覽的文件添加即可,這樣就建好了一個項目。

添加和刪除項目文件

(1)在添加刪除文件前,可以先設置文件過濾器,菜單欄-選項-文檔選項,就可以看到文件過濾器了,怎麼設置應該是一目瞭然的。

(2)菜單欄-項目-添加或刪除文件,即可打開添加和刪除項目文件對話框。

同步文件 SynchronizeFile

快捷鍵Alt+Shift+S可以同步文件,同步文件後就可以自動找到源代碼之間的依賴關係了(如:可以自動找到調用某個函數或變量的位置)

項目報告

菜單欄-項目-項目報告,獲取當前項目的文件個數,代碼行數等。

重建項目

菜單欄-項目-重建項目,重新同步代碼依賴關係。

具體操作如下:

  • 依次點擊 Project -> new project ,彈出對話框分別是SI的 工程名字工程目錄,如:工程名QCA4020,目錄名SI_Proj。

    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-db05fa652a7f28b7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/580"></p>
    
    <p>創建工程</p>
    </li>
    <li>
    <p>選擇我們的代碼工程位置,比如我選擇了 <strong>D:\linux-to-windows-share\target</strong> 這個目錄,我的工程代碼全在這個目錄下(注意不是SI的工程目錄),然後點擊 <strong>OK</strong> 繼續。</p>
    
    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-22cfe6595fe68001.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/601"></p>
    
    <p>選擇代碼工程目錄</p>
    </li>
    <li>
    <p>這一步,進一步確定你要添加哪些代碼到你的SI工程中,如果你要添加 <strong>target</strong> 這個目錄下的全部,就選中它,點擊 <code>Add Tree</code> 就好。後面你要是增刪文件,也在這裏。添加好了,就點擊 <code>Close</code> 吧。</p>
    
    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-92bc0a13b1b65467.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/678"></p>
    
    <p>解析代碼選擇</p>
    </li>
    
  • 添加以後,解析它吧。這一步會把代碼加到SI數據庫中,使得後面查找、關聯更快。解析過程有點慢,耐心等待吧。點擊Project -> SynchronizeFile, 並選擇1,3,4打鉤(勾上會強制添加和解析),點擊 start

    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-e2c5ee899169a2bf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/608"></p>
    
    <p>解析代碼</p>
    </li>
    <li>
    <p>如果解析完了,你突然發現忘記添加某些文件了,或者本來不用添加的你卻添加了。不要擔心,點擊 <code>Project</code> -&gt; <code>Add and Remove Project Files</code>,再次進行添加刪除,然後 <strong>再進行解析SynchronizeFile</strong> 操作纔會生效。</p>
    
    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-05ff03b3626000fb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/678"></p>
    
    <p>添加和刪除解析文件</p>
    </li>
    <li>
    <p>解析完,點一下那個書本一樣的圖標(Project Sympol List),嘗試一下,你的代碼就出來:</p>
    &nbsp;
    
    <p><img alt="" class="has" src="//upload-images.jianshu.io/upload_images/9181524-94593349bd34dbf6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700"></p>
    </li>
    

 

SourceInsight 的窗口設置

  • 這裏對SourceInsight進行一些設置,你完全可以不用設置,默認就好。

  • 選擇主題:Option -> Visual Theme (選擇你喜歡的)。

  • 設置字體大小:Option -> Preference -> Colors & Fonts -> Style -> size

  • 顯示文件全路徑:Option -> Preference -> Display , 去掉 trim long path names with ellipes

  • 添加配置文件(別人配置好的):Option -> Load configuration(前提是你下載了別人的配置文件)。

  • 顯示行號:view -> Line Numbers

使用技巧

  • 如果要 搜索字符位置,選中該字體,點擊 工具欄的R圖標 或者 Ctrl + F

  • 在Project Window(默認右邊)的對話框中輸入文件名,可以搜索到文件。

 沒有正確顯示在右邊的file list列表框

需要在View菜單下找到Panels級聯菜單下的Project Windows,把它勾選上。

Source Insight4.0軟件打開C程序中文註釋亂碼的解決方法

更改Options—Preference—Files中最下面的Default encoding中程序默認的UTF-8改爲System Default(windows ANSI)。

高亮顯示選中的單詞

高亮顯示:F8。取消高亮:再按一次F8。

效果如下:

打開Source Insight相關窗口

(1)打開Symbol Window。

View->Symbol Window。快捷鍵:Alt+F8。

(2)打開Context Window。

View->Panels->Context Window。

(3)打開Relation Window。

View->Panels->Relation Window

Source Insight窗口布局我一般設置如下:

窗口字體大小與樣式設置步驟:

Preferences->Colors&Fonts->Set Panel Fonts and Colors。

這裏設置只對上面窗口1:符號窗口(Symbol Window)和窗口4:項目文件夾瀏覽窗口(Project Folder Browser)有效,另外兩個窗口無效。

窗口2:上下文窗口(Context Window)字體大小設置如下:

在面板內右擊->Context Window Options->scaling。

窗口3:引用關係窗口(Relation Window)字體大小設置如下:

窗口內右擊->Relation Window Options->Font。

Source Insight的7種窗口的使用。

1、文檔窗口

(1)、修改窗口顏色屬性:菜單欄-選項-參數-顏色標籤,可以修改背景顏色、默認字體顏色、修改標記顏色等,如背景顏色改爲護眼模式:R199 G237 B204。

(2)、Alt+Y打開文檔類型選項窗口,修改字體顯示大小、是否顯示行號、解析語言選擇、工程文件過濾、擴展tab鍵、是否顯示符號窗口等。

擴充1:Source Insight可以定義風格,菜單欄-選項-風格,即可以打開風格窗口,可以新建一個風格或修改一個風格。風格可以繼承(和C++繼承差不多)。

擴充2:如何使用風格。當選中某種語言解析文檔的時候,可以定義一些固定字符以不同的風格顯示出來。菜單欄-選項-參數-語言標籤,選中解析文檔的語言,點擊關鍵字按鈕,打開語言關鍵字窗口,在樣式這一欄選中一種風格,然後添加關鍵字即可。這樣文檔中這個關鍵字就以那種風格顯示了。

擴充3:如何查看和修改符號(如函數名、變量等)的風格,右擊該符號,選擇風格,打開窗口就可以看到該符號的風格是什麼,然後進行修改。

(3)、快速更名ctrl+',選中某個函數名,然後按ctrl+',彈出快速更名窗口,然後根據相應的選項,可以快速更換函數名。(包括函數的聲明處,定義處,引用處等)。

(4)、F8,高亮

(5)、ctrl+左擊,進入函數定義或變量聲明處。

(6)、Alt+,:後退

(7)、Alt+.   :前進

(8)、ctrl+g:調到固定行

(9)、Alt+左擊拖動:可以進行列編輯

(10)、自動縮進:Alt+T打開文檔選項窗口,點擊自動選項,選中第三個smart縮進,並把後面的兩個勾都去掉,這樣配置比較好。可以嘗試一下勾上的效果,然後和不勾的效果對比一下。

(11)、編碼格式設置,設置完畢後需要重新打開文件進行瀏覽。

(12)、Ctrl+F打開查找界面,配置好查找選項,然後關閉查找界面,選中一個單詞,按一次Shift+F3,然後只要按F3和F4即可進行查找上一個和下一個。

2、符號窗口

這個窗口是顯示文檔的符號的,那麼文檔內容哪些是符號呢,這個應該是看文檔窗口是設置哪種語言來解析文檔的。

(1)、Alt+F8:打開/關閉當前文檔的符號窗口。

(2)、Alt+Y打開文檔選項窗口,配置所有文檔是否打開符號窗口。

(3)、右擊符號窗口-符號窗口選項-符號類型,可以選擇顯示的符號種類。

(4)、右擊符號窗口-符號窗口選項,可以修改字體、背景顏色等。

3、項目窗口

這個窗口可以使用各種模式來顯示文件名、文件目錄等。

(1)、右擊窗口選項,修改字體或背景顏色、不顯示文件大小、目錄、日期等。

4、關聯窗口

這個窗口用來顯示文檔中的符號在哪些地方進行了引用。如哪些地方調用了函數,或該函數調用了哪些函數等。關聯窗口可以有好多個。

(1)、右擊關聯窗口-窗口屬性,可以修改字體、背景顏色等。

(2)、右擊關聯窗口-新建窗口,則可以打開一個新的關聯窗口。

(3)、關聯窗口的功能修改,右擊關聯窗口-窗口屬性,可以修改對應符號的關係類型,選擇Reference,則該窗口顯示調用該函數或變量的地方,選擇calls,則該窗口顯示該函數調用了哪些函數。

(4)、如何使用該窗口:選中某個函數或變量,關聯窗口會自動顯示對於內容,如果不想它自己變,就鎖上,然後需要找的時候刷新。(鎖定、刷新按鈕應該可以看到吧)

5、上下文窗口

這個窗口一般配合關聯窗口使用,單機關聯窗口的某一項,可以自動在上下文窗口顯示該項的上下文,雙擊上下文內容,則可以在文檔窗口打開上下文。

(1)、右擊窗口-屬性,修改字體、背景顏色等。

6、剪輯窗口

這個窗口的作用相當於是定義了好多粘貼板的意思。一個剪輯相當於一個粘貼板。

(1)、右擊窗口-屬性,修改字體、背景顏色等。

(2)、新建、修改、刪除一個剪輯。

(3)、如何使用新建的剪輯:菜單欄-編輯-粘貼自剪輯/拷貝到剪輯。

7、代碼片段窗口

(1)、右擊窗口-屬性,修改字體、背景顏色等

(2)、可以自定義一些代碼片段,使用時直接插入即可。

打開上下文窗口context window

在view / panels/ context window

 

三、自定義命令

菜單欄-選項-自定義命令,可以添加一條命令,定義該命令的名字、執行命令語句。

如何運行命令:可以將命令顯示在菜單欄(參考第五點菜單分配)或者給命令定義一個快捷鍵(參考第六點鍵分配)。

望君舉一反三。

1、定義使用gvim打開當前文檔的命令,前提是要先安裝一個gvim程序。

命令名:editWithGvim

執行命令:"C:\Program Files\Vim\vim63\gvim.exe" --remote-silent +%l %f

備註:--remote-silent 是如果已經打開了對應文件,就不會打開第二次,而是在已經打開的文件裏跳轉到對應行;%l 是當前行;%f是當前文件。

2、在資源管理器中顯示當前文檔,即打開當前文檔位置。

命令名:explorer

執行命令:explorer /select,%f

備註:不知道,再說吧。

四、宏的使用

宏語言是SourceInsight定義的一種可編程語言。安裝好一個SourceInsight後,打開SourceInsight,可以看到有一個base項目。打開base項目,可以看到有一個Utils.em文件,該文件就是宏語言文件,在裏面可以自己寫一些宏,也可以新建一個.em文件寫宏,或者下載一個別人寫好的.em文件如quiker.em(lushengwen寫的,用的人比較多)。新建的.em或別人的.em文件要加載到base工程中(如何加載:菜單欄-項目-添加/刪除文件)。

如何調用宏:可以將宏顯示在菜單欄(參考第五點菜單分配)或者給宏定義一個快捷鍵(參考第六點鍵分配)。

1、宏語言語法

這個再說

2、quiker.em的使用(從網絡下載)

(1)、首先要把這個文件搞到手,然後將其加載到Base工程中,其次要定義一個快捷鍵調用quiker.em中的宏AutoExpand。quiker.em中寫了那麼多宏,爲什麼只調用AutoExpand宏就可以。因爲調用AutoExpand宏後,AutoExpand會根據當前文本內容自動調用其他宏。一般情況下都用快捷鍵ctrl+enter調用AutoExpand宏。

(2)、輸入文本config,然後執行AutoExpand,根據提示完成語言、姓名配置。

(3)、輸入文本fu,然後執行AutoExpand,根據提示完成函數的註釋。(在函數名的上一行執行)

(4)、輸入文本if,然後執行AutoExpand,可以自動完成語法。其他類似。

(5)、輸入文本file,然後執行AutoExpand,可以自動生成.c文件描述。

(6)、輸入文本hdn,然後執行AutoExpand,根據提示完成.h文件宏定義。

(7)、在.c文件裏輸入hd,然後執行AutoExpand,可以自動生成.c文件對應的頭文件。

(8)、後續補充

3、自己寫的宏

(1)、自動註釋,給這個宏定義一個快捷鍵,然後選中幾行文本,執行快捷鍵,即可以進行註釋與反註釋操作。

macro MultiLineComment()
{
    hwnd = GetCurrentWnd()
    selection = GetWndSel(hwnd)
    LnFirst =GetWndSelLnFirst(hwnd)      //取首行行號
    LnLast =GetWndSelLnLast(hwnd)      //取末行行號
    hbuf = GetCurrentBuf()
    if(GetBufLine(hbuf, 0) =="//magic-number:tph85666031"){
        stop
    }
    Ln = Lnfirst
    buf = GetBufLine(hbuf, Ln)
    len = strlen(buf)
    while(Ln <= Lnlast) {
        buf = GetBufLine(hbuf, Ln)  //取Ln對應的行
        if(buf ==""){                   //跳過空行
            Ln = Ln + 1
            continue
        }
        if(StrMid(buf, 0, 1) == "/"){       //需要取消註釋,防止只有單字符的行
            if(StrMid(buf, 1, 2) == "/"){
                PutBufLine(hbuf, Ln, StrMid(buf, 2, Strlen(buf)))
            }
        }
        if(StrMid(buf,0,1) !="/"){          //需要添加註釋
            PutBufLine(hbuf, Ln, Cat("//", buf))
        }
        Ln = Ln + 1
    }
    SetWndSel(hwnd, selection)
}

五、菜單分配

菜單欄-選項-菜單分配,可以將自定義命令、宏等顯示到菜單欄列表裏。

六、健分配

菜單欄-選項-鍵分配,定義快捷鍵,可以將自定義命令、宏等定義一個快捷鍵。

七、配置的保存和載入

菜單欄-選項-載入配置或保存配置,可以把自己的配置保存下來,或者發給別人讓別人使用。獲取我的配置文件:http://pan.baidu.com/s/1pKViFHp

八、佈局使用

軟件提供了四個佈局的保存,當配置好一個界面佈局後可保存到一個佈局當中,這樣可以方便切換軟件佈局。

九、文件名標籤設置爲最近的使用靠左顯示

10、顯示/去掉overview

 

附:代碼格式化,自己調整,本來想上傳配置文件的,我看還是算了,自己調整吧

 

面是SI4.0版本官網的使用說明介紹網頁。

https://www.sourceinsight.com/doc/v4/userguide/index.html#t=Manual%2FFrontMatter%2FFrontMatter.html

第一用戶界面

第二:功能和概念

1項目 2項目窗口

3符號和語言分析 4條件分析和預處理器支持

5名稱片段匹配符號名稱 6源代碼管理

7文件類型 8瀏覽和分析

9語法格式和樣式 10上下文窗口

11關係窗口 12代碼片段

13剪輯窗口 14書籤

15搜索和替換文本 16常用表達

17比較文件和目錄 18與選擇歷史導航

19滾動和選擇文本 20概述和摺疊文本

21代碼美化 22從項目源生成HTML

23文件編碼 24文件緩衝區基礎

25從崩潰中恢復 26命令行語法

27用戶級命令 28自定義命令

29自定義的設置和配置 30視覺主題

31使用佈局保存窗口排列 32保存和恢復工作區

33性能調整 34預定義的路徑變量

35 Source Insight創建的文件

功能和概念->一項目

項目:

1項目功能 2在一個項目裏面

3當前項目 4項目目錄

5規範化的文件名稱 6創建一個新項目

7將文件添加到項目 8從項目中刪除文件

9使用主文件列表 10打開和關閉項目

11刪除項目 12複製項目

13只讀項目 14更改項目設置

15符號和項目 16同步項目文件

17基地項目 18創建項目的Web版本

19重建項目

① 項目功能:

● Source Insight項目有幾個重要的特點:

● 一個項目邏輯上分組相關的文件。

● 當你想打開一個文件,你不必指定它的驅動器或目錄。

● Source Insight維護一個符號數據庫,其中包含有關項目中所有符號聲明和引用的數據。

您可以使用Source Insight來快速定位符號及其引用。保存源文件時,符號數據庫會自動

更新,以便Source Insight始終“知道”符號的位置。當文件在外部進行更改(例如通過

源代碼管理系統)時,Source Insight將自動將這些文件與項目符號數據庫同步。

請參閱:符號和語言分析。

● Source Insight可以在項目中顯示符號關係,如調用樹,引用樹和類層次結構。

● Source Insight維護了一個參考索引,大大加快了項目範圍內對符號引用的搜索速度。

在編輯和保存文件時,參考索引會逐步更新。

● 每個項目都有自己的會話工作區。當一個項目被打開時,所有的會話狀態被恢復。

當一個項 目關閉時,所有打開的文件都關閉,工作區被保存。

② 在一個項目裏面:

● 一個項目基本上由兩部分組成:您的源文件和Source Insight維護的項目數據文件。

圖3.1 Source Insight項目的組件

每個項目都包含一個指向源文件的列表文件路徑。項目還包含由Source Insight維護的符號數據庫。您的源文件由Source Insight和符號聲明和定義進行分析,並且引用記錄在符號數據庫中。您只需將源文件添加到您的項目中; 您不必生成任何其他“標籤”文件。Source Insight自動執行此操作。每個項目都有自己的會話工作區。工作區包含會話信息,例如打開的文件列表和窗口位置。

附簡易使用說明:

Source Insight導入源代碼流程如下:

1)打開Source Insight;

2)選擇Project->New Project,填寫工程的名字,工程文件存放路徑,點擊OK後即創建Source Insight工程相關文件(相應目錄會生成*.PR等工程文件);

3)不斷Next,你會發現Add and Remove Project Files對話框,在左邊列表中選擇你的源代碼所在的文件夾,然後點擊Add Tree,將源代碼中所有文件添加到新創建的Source Insight工程中(即添加到右邊列表中),添加完成後你可以關閉該對話框,點擊Project->Rebuild Project,這時你的源代碼中的所有源文件全部都同步到Source Inight工程中了,這時你就可以使用Source Insight閱讀源代碼了;

點擊Project->New Project,就會出現以下界面

再New project name裏面寫一個項目名字,然後點擊Browse,選擇到你那個項目的文件夾,此次以我的一個項目爲例:

點擊確定,然後出現一直ok

 

直到出現這個界面


然後點擊Add Tree,出現這個界面

點擊確定,然後出現這個界面

,然後把這個界面關掉就加載了項目

然後點擊右邊操作欄中,下面被選中這個按鈕

然後會彈出一個提示框,是否要將這些代碼關聯,確認,然後加載完就可以,此時出現的是所有識別的函數名的列表,然後點擊第一個按鈕,回到下面這個界面,顯示的是文件代碼

雙擊其中Main.cpp文件,出現這個界面

然後隨便選擇這個文件中一個函數,就可以在下面看到他的定義

下面查看這個函數的全部調用,右擊這個函數,選擇Lookup References

然後選擇Search

如果有彈出下面的框,可以隨便選擇Replace還是Append

然後就出現下面的界面

閱讀python代碼

首先從http://www.sourceinsight.com/public/languages/下載Python的配置文件Python.CLF ,然後對SourceInsight作如下配置:

(1)選擇Options > Preferences,單擊Languages選項;

(2)單擊import按鈕,裝載並導入Python.CLF;

(3)這時可以看到,左欄語言列表多了一項Python Language;

(4)單擊Document Types按鈕,打開文檔選項對話框;

(5)添加Document Type爲Python,File filter爲“*.py”,Passer組中Language選項設置爲Python Language;

(6)單擊文檔選項對話框的close按鈕;

(7)單擊Preferences窗口OK按鈕,退出Preferences窗口,完成設置。

 

參考來源:

https://www.jianshu.com/p/adca6c2f94f6, https://blog.csdn.net/qq_39660930/article/details/77499455,https://zhuanlan.zhihu.com/p/32754019,https://www.sourceinsight.com/doc/v4/userguide/index.html#t=Manual%2FFrontMatter%2FFrontMatter.htm,https://zhuanlan.zhihu.com/p/36543793.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章