0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

神器必會!特別好使的編輯器Source Insight

技術(shù)讓夢想更偉大 ? 來源:博客園 ? 作者:宋者為王 ? 2022-12-07 14:39 ? 次閱讀

“Source Insight(以下簡稱SI)是世界上最好的編輯器”,說這句話不知道會不會出門被打呢?-_- 中國古話說得好,“文無第一,武無第二”,所以不敢說SI是最好的,但是說是“最好的之一”絕對是妥妥的。它以豐富的語言支持、便捷的功能、快速的源碼導(dǎo)航、實時的上下文顯示、獨立的符號數(shù)據(jù)庫等眾多優(yōu)點,在全世界范圍內(nèi)廣受程序員們的歡迎。本文將結(jié)合筆者的實際操作和學(xué)習(xí),基于SI3.5做一些使用記錄。另外,筆者對SI的使用,主要是用于閱讀源碼,本文介紹的功能也是基于閱讀方面的。

本文的主要內(nèi)容如下:

79b4864a-729f-11ed-8abf-dac502259ad0.png

一、SI簡介

SI是一款面向項目開發(fā)的程序編輯器和代碼瀏覽器,它提供了一個視圖將分散在各個地方的代碼匯合在一起形成一個虛擬的整體,供開發(fā)者方便地閱讀和編輯,如下圖所示。

79c3a972-729f-11ed-8abf-dac502259ad0.png

該段英文摘自SI官方幫助文檔,從這里可以看出SI的設(shè)計宗旨就是方便開發(fā)者查看和修改項目源碼。

二、SI的優(yōu)勢

SI是如今最好用的語言編輯器之一,具有很多其他編輯器無法比擬的優(yōu)點,比如下面幾點。

1、支持語言種類多。

SI幾乎支持所有的語言,如C、C++、C#、JAVA、ASM、PAS、ASP、HTML等,而其它編輯器往往只支持其中某類或某幾種語言,豐富性遠不及SI。

2、擁有自己的數(shù)據(jù)庫。

SI自動傳創(chuàng)建并維護他自己高性能的符號數(shù)據(jù)庫,包括包名、函數(shù)、method、全局變量、結(jié)構(gòu)、類、注釋和功能源文件里定義的其它類型的符號等。我們可以通俗地理解為緩存,當需要再次查找某個符號時,就可以直接從數(shù)據(jù)庫中查找,而不用在整個源碼庫中搜索,極大提高了效率。

3、顯示豐富的程序相關(guān)信息。

SI提供了豐富多彩的窗口,為被選中的代碼提供豐富的信息,如reference trees、class inheritance diagrams、call tress,symbol windows等。后面會專門介紹這些窗口的使用。

4、實時顯示上下文信息。

SI提供了Context Window,當鼠標選擇代碼中的某個符號時,該window會實時顯示選中符號的上下文信息。在下文中的Context Window會詳細講到。甚至在你編輯的時候,SI同時分析你的源碼,提供實時的信息并進行分析。

5、快速。

提供了快速和革新的訪問源代碼和源信息的能力,能以最快的速度對源代碼導(dǎo)航和提供任何程序編輯器的源信息。

三、創(chuàng)建項目

在SI窗口的頂部工具欄上依次點擊 Project > New Project,即可開始創(chuàng)建一個新的項目了。之所以要特別介紹項目的創(chuàng)建過程,除了這是一個極常用的操作外,還有就是創(chuàng)建過程中有一些注意事項需要留心,筆者在使用過程中就曾經(jīng)走過不少彎路,在這里特別記錄一下。 1、項目命名及設(shè)置項目存儲路徑

79df7c1a-729f-11ed-8abf-dac502259ad0.png

2、項目設(shè)置

如下圖,在紅框部分選擇需要打開的源碼所在的路徑,筆者最初使用的時候,就忽略了這里,導(dǎo)致在后面的步驟中,找不到源碼,一度以為是SI版本異常了,所以這里特別提醒一下。其它的選項這里就按照默認的選擇就可以了,筆者就是這么做的。當然,這個要根據(jù)用戶自己需要來選擇了,看個人喜好。

7a00bb32-729f-11ed-8abf-dac502259ad0.png

3、添加/刪除項目文件

在這個界面上,可以看到左側(cè)“Directory”這一欄的根節(jié)點,就是第二步“項目設(shè)置”中咱們選擇的源碼路徑所在的盤符,如果你要添加的源文件不在這個盤符,就沒法找到了。在該盤符下選擇想要添加的文件,如藍色部分“Android-8.0.0_r1”,這是Android 系統(tǒng)源碼根目錄,因為這里選擇的是文件夾,所以點擊右邊的“Add Tree”來添加整個目錄。如果選擇的是文件,多個文件就選擇“Add All”,單個文件就選擇“Add”

7a1d12dc-729f-11ed-8abf-dac502259ad0.png

添加時會給出對話框,表示正在添加。筆者添加的源碼目錄有4G以上,所以這時需要等待好幾分鐘的時間。

7a3719e8-729f-11ed-8abf-dac502259ad0.png

添加完成以后,可以看到對話框提示,點擊“確定”即可,此時可以繼續(xù)添加項目文件。

7a462866-729f-11ed-8abf-dac502259ad0.png

4、完成項目創(chuàng)建

當不需要再添加文件了,點擊“Close”按鈕關(guān)閉該界面,即完成了項目的創(chuàng)建。此時顯示的界面如下,左下區(qū)域顯示的就是新建的項目,列表顯示了項目中文件。

7a640688-729f-11ed-8abf-dac502259ad0.png

四、常用窗口

SI的用戶接口主要包含如下幾種類型:

(1)頂部主要菜單和工具欄;

(2)用于編輯的源文件窗口;

(3)可停放或浮動的工具窗口。

由于SI是一個MDI(Multiple Document Interface,多文檔接口),這意味著每一個你打開的源文件都擁有它自己的子窗口。在這一節(jié)中,將主要介紹主要菜單和最常用到的9個應(yīng)用窗口。下圖展示了主界面常用窗口概貌:

7a799854-729f-11ed-8abf-dac502259ad0.png

1、主菜單(Main Menu)

和其他所有編輯器一樣,主菜單欄包含了所有編輯器功能的入口。每一類功能又都分類到某個子菜單中,這一點自然不用多說,地球人都知道,就不一一展示每個子菜單和功能點界面了,一些常用和重要的操作,咱們后文詳細介紹。

7ab9ce42-729f-11ed-8abf-dac502259ad0.png

從上圖可以看到,分類其實是非常簡潔和明確的,看子菜單名稱大概就能知道其中包含了哪些功能,很方便查找。這里筆者著重推薦一下“Help”子菜單。無疑,官方的幫助文檔,是最權(quán)威,最全面的,如果英文不是太差,對某些功能不是太明白的話,完全可以從這個文檔中去查找,筆者看過其中不少說明,其實還是很容易看懂的。如下為官方幫助文檔概貌,內(nèi)容還是比較全面的:

7ad0bf94-729f-11ed-8abf-dac502259ad0.png

2、工具欄(Toolbars)

工具欄列出了不少比較常用的一些功能快捷按鍵,這個也是地球人都知道的吧。如下顯示了SI設(shè)置的所有快捷工具圖標。

7ae3625c-729f-11ed-8abf-dac502259ad0.png

(1)顯示/隱藏工具欄

點擊菜單欄View子菜單欄,點開Toolbars,就可以看到工具欄顯示選擇界面,可以在這里選擇顯示/隱藏哪些工具,如下圖所示。也可以右鍵點擊SI窗口頂部或工具欄空白處,也可以顯示下圖界面。

7b023aec-729f-11ed-8abf-dac502259ad0.png

(2)工具欄工具簡介

把鼠標停留在工具欄的圖標上,會簡單說明該工具的作用。咱們下面簡單看看工具欄都包含了哪些功能,做到心中有數(shù),這有助于以后快速定位到某些功能的入口而不用每次都到菜單欄中去找,少走一些彎路。

1)標準工具欄(Standard Toolbar):包含了基本的文件操作

7b16fed2-729f-11ed-8abf-dac502259ad0.png

2)編輯工具欄(Edit Toolbar):包含一些基本的編輯操作

7b39f3c4-729f-11ed-8abf-dac502259ad0.png

3)搜索工具欄(Search Toolbar):包含了一些搜索命令

7b44a7ba-729f-11ed-8abf-dac502259ad0.png

4)導(dǎo)航工具欄(Navigation Toolbar):包含了一些界面導(dǎo)航功能。

7b5226ec-729f-11ed-8abf-dac502259ad0.png

a)Go To Previous Link / Go To Next Link:在搜索結(jié)果界面,用于跳轉(zhuǎn)到前一個/后一個結(jié)果的鏈接。

b)Go Back/Go Forward:回到上個/下個操作界面;

c)Go To Line:跳轉(zhuǎn)到某一行

d)Bookmarks:添加書簽,或定位到書簽處。鼠標光標停留在編輯窗口的某一行,點擊該按鈕,會顯示如下界面??梢赃x擇在“Name”處輸入書簽名并點擊“Set”按鈕,新增一個書簽;也可以在“Marks”處顯示的書簽列表中選擇一個書簽,雙擊或者點擊“Go To”按鈕,就可以跳轉(zhuǎn)到該書簽對應(yīng)的代碼處了。對于要經(jīng)常查看某處代碼,這個工具算是相當給力了。

7b64eda4-729f-11ed-8abf-dac502259ad0.png

5)符號工具欄(Symbol Toolbar):用于訪問一些符號信息(這里說的符號,前面第二大點第2小點講過其含義了,不明白的可以返回去看看)。

7b83e8d0-729f-11ed-8abf-dac502259ad0.png

a)Jump To Definition:跳轉(zhuǎn)到選中的某個符號定義的地方。其實當在編輯器中用鼠標選擇某個符號,如果打開了“Contex Window”的話,可以在“Context Window”中實時看到該符號的定義處,這個后面講到該窗口時再詳細講,這里不贅述。

b)Symbol Info:彈出對話,顯示選擇的符號的相關(guān)信息,以及一些操作按鈕,如下圖所示??梢钥吹缴厦妗癑ump To Definition”是這里的一個小功能。

7b95e6a2-729f-11ed-8abf-dac502259ad0.png

c)Browser Project Symbols:可以查看整個項目中的符號列表。

d)Look up References:顯示該符號被引用的地方。會彈出一個對話框,根據(jù)選擇的搜索條件進行搜索,顯示一個搜索結(jié)果窗口列出這些引用信息(由于該該窗口尺寸原因,這里不好顯示,就不貼圖了)。其實在“Relation Window”中,也會實時顯示這些應(yīng)用列表的,這個后面在講該窗口時會詳細講,這里就不贅述了。

7bb17656-729f-11ed-8abf-dac502259ad0.png

7bcad0c4-729f-11ed-8abf-dac502259ad0.png

6)窗口工具欄( Window Toolbar):用于控制窗口的排列

7be06c40-729f-11ed-8abf-dac502259ad0.png

7)幫助工具欄(Help Toolbar):訪問幫助文檔。

7bf59b9c-729f-11ed-8abf-dac502259ad0.png

點擊“Help Mode”后會出現(xiàn)一個“?”,將其拖到你想尋求幫助的地方,就會顯示該處相關(guān)的幫助文檔。

8)視圖工具欄(View Toolbar):開啟/隱藏常用的幾個窗口,后面會專門對這幾個窗口做介紹。

7c094ef8-729f-11ed-8abf-dac502259ad0.png

9)構(gòu)建工具欄(Build Toolbar):運行和編譯項目。

7c21afd4-729f-11ed-8abf-dac502259ad0.png

10)版本控制工具欄(Source Control Toolbar):包含了操作版本控制的相關(guān)工具。

7c33ff7c-729f-11ed-8abf-dac502259ad0.png

3、源文件窗口(Source File Windows)

源文件窗口,可以稱作是SI的主角了,因為源碼都顯示在這個窗口,可編輯,可同時打開多個窗口,在左上角紅框處顯示了源文件文件名和路徑。

7c48e78e-729f-11ed-8abf-dac502259ad0.png

在源文件窗口選中某個符號并點擊右鍵,會顯示一個功能菜單,可以對源文件進行操作,如下圖所示:

7c713e50-729f-11ed-8abf-dac502259ad0.png

這些功能有些是基本操作,有些是“見名思義”,一看就知道功能,有些在前面介紹工具欄的時候介紹過,這里就不再一一說明了,僅選擇性簡單介紹幾個:

Highlight Word 將文件中所有所選單詞高亮顯示,再次點擊會取消高亮。比如截圖中選擇“reason”并高亮,文件中的所有“reason”這個單詞都高亮了。另外,這個功能對注釋區(qū)無效。

Special Window Color/Remove Special Window Color 設(shè)置和取消編輯窗口的背景顏色。

Keyword List 顯示當前文件所有的的關(guān)鍵字列表。

Style Properties

Document Options 設(shè)置編輯區(qū)文字顏色、大小、間隔等屬性。

Language Properties

Edit Condition

4、符號窗口(Symbol Windows)

符號的概念前面第二大節(jié)第2小點解釋過,不清楚的可以往前翻看。該窗口和源文件窗口相依相存,同時出現(xiàn)或隱藏,它顯示在源文件窗口的左邊,展示了當前文件中的所有符號列表。如下圖所

示:

7c89c466-729f-11ed-8abf-dac502259ad0.png

頂部顯示了文件名;搜索欄中輸入要查找的符號可以快速找到要找的符號;中間部分顯示了符號列表,每一項前面都有一個符號,這些符號表示不同的符號類型;底部為工具欄,主要用于顯示符號排序方式,決定顯示哪些內(nèi)容,字體顏色和大小等。(Tips:如果在操作過程中,發(fā)現(xiàn)該窗口為空白了,可以點擊工具欄中的排序方式選擇按鈕,相當于刷新了一下,即可正常顯示了,最開始筆者碰到這種情況的時候,曾經(jīng)蒙圈過...)

在窗口區(qū)域內(nèi)點擊右鍵,會顯示一個菜單欄,顯示針對該窗口的一些操作功能,如下圖所示:

7caaa7d0-729f-11ed-8abf-dac502259ad0.png

值得注意的是,菜單欄中Cut~Select Symbol,操作對象是整個符號所代表的代碼塊,而不是符號所代表的字符串。比如鼠標選中某個方法符號,點擊“Copy Symbol”后復(fù)制的就是整個方法了。這里有個比較生僻的功能——“Duplicate Symbol”,表示重復(fù)符號,將符號復(fù)制并粘貼,功能上看就相當于“Copy Symbol”和“Paste Symbol”一次組合使用了。菜單中剩余的功能基本上就是Window面板中搜索欄和工具欄中的功能,這里不贅述。

5、項目窗口(Project Window)

項目窗口顯示了項目的相關(guān)信息,可以在SI頂部“View > Project Window”或者Toolbar中“Project Window”按鈕來控制該窗口的顯示/隱藏。

(1)概貌

如下圖所示,為項目默認窗口的概貌圖,我們可以看到,它顯示了項目名稱,快速搜索欄,中間的內(nèi)容顯示區(qū)和底部的工具欄,當然還有右上角的最大/最小化和關(guān)閉按鈕。

7cb8e5f2-729f-11ed-8abf-dac502259ad0.png

(2)內(nèi)容顯示區(qū)

這個區(qū)域會根據(jù)“快速搜索欄”輸入的關(guān)鍵字過濾出文件名或路徑包含該關(guān)鍵字的匹配列表,上圖中還顯示了文件大小,和修改時間。這個區(qū)域的內(nèi)容也會隨著工具欄中的按鈕的切換而變化顯示內(nèi)容。后面講工具欄時會再講到。雙擊某一項或者在某一項上點擊右鍵調(diào)出的菜單中點擊“Open”就可以快速進入到對應(yīng)的源文件。

(3)工具欄

默認選擇是顯示,也可以通過在該項目窗口點擊右鍵后顯示的菜單欄“Toolbar”選項來顯示/隱藏工具欄。窗口工具欄中黃框部分按鈕用于切換內(nèi)容顯示區(qū)的顯示內(nèi)容;藍框部分會根據(jù)黃框部分按鈕的選擇而有所變動,主要用于跳轉(zhuǎn)到某些界面;綠框部分為項目窗口屬性設(shè)置按鈕,包括字體大小、顏色、背景色等。把鼠標指針放置在按鈕上,會顯示該按鈕功能。

1)黃框中按鈕功能如下:

Project File List:項目文件列表。默認選擇為該項,在“內(nèi)容顯示區(qū)”顯示當前項目中的所有文件列表,并降序排列,如概貌圖中所示。Tips:這里可以在搜索欄中靈活使用通配符,比如輸入“*.java”再按“Enter”按鍵,可以篩選出所有的java文件;如果再輸入“*”并“Enter”,則取消前面通配符效果,也可以理解是“*”表示顯示所有。

Project File Browser:項目文件瀏覽器,以目錄樹的形式顯示。

7cd21e64-729f-11ed-8abf-dac502259ad0.png

Project Document Types:按照文件的文檔類型來分類顯示。

7ce8418a-729f-11ed-8abf-dac502259ad0.png

Project Symbol List:顯示項目中符號列表。

7cfd0f20-729f-11ed-8abf-dac502259ad0.png

注意:這里工具欄中黃色邊框中的按鈕,與其他幾個界面有所不同了。

Project Symbol Classes:按照符號的類型進行分類顯示。

7d0ce5a8-729f-11ed-8abf-dac502259ad0.png

2)黃框中

前面也提到了,藍框中的按鈕是變化的。當左邊切換到“Project Symbol List”或“Project Symbol Classes”這兩個顯示Symbol的界面時,藍框中顯示了4個按鈕,這里的4個按鈕和SI整體窗口頂部的工具欄中符號工具欄(Symbol Toolbar)一樣,這里不贅述,不清楚的可以查看前面“工具欄”這一節(jié)。當選擇的是其他3種界面時,顯示的是概貌圖中界面:Open Project、Add or Remove Project Files 和 Project Report。Project Report,生成當前項目中的統(tǒng)計數(shù)據(jù),如下圖(1)所示,可以選擇一些統(tǒng)計項,點擊“OK”按鈕,會生成一個統(tǒng)計報告文件如下圖(2)所示。

7d159dc4-729f-11ed-8abf-dac502259ad0.png

圖(1)

7d2698d6-729f-11ed-8abf-dac502259ad0.png

圖(2)

3)綠框中

綠框中按鈕的功能是設(shè)置項目窗口的界面信息,如下圖所示,可以設(shè)置顯示內(nèi)容,字體/顏色/大小等。

7d369bdc-729f-11ed-8abf-dac502259ad0.png

(4)右鍵菜單欄 在該窗口中點擊右鍵,可以調(diào)起項目窗口的功能菜單欄,如下圖所示。前面黃框部分按鈕在切換顯示內(nèi)容是文件或符號的時候,菜單欄會有一點不同,但也是大同小異,這里不單獨貼圖了。這里單獨提一下“Synchronize Files”,同步項目中的所有修改,其他功能或在工具欄中講到過,或見名思義,就不贅述了。

7d46cd5e-729f-11ed-8abf-dac502259ad0.png

6、關(guān)聯(lián)窗口(Relation Window)

Relation Window也是SI的一個創(chuàng)新點,用于顯示當前被選中的Symbol和外界的聯(lián)系,比如被哪些地方引用,被哪些地方調(diào)用等。它和后面要講到的Context Window一樣,都是跟蹤選中的Symbol而自動實時地變化。

(1)開關(guān)位置

可以在SI頂部菜單欄選擇/取消“View > Relation Window”,或者在頂部Toolbar中點擊“Relation Window”快捷按鈕來顯示/隱藏該窗口。

(2)窗口內(nèi)容

當鼠標光標停留在某個Symbol上時,該窗口中會立即顯示設(shè)置的關(guān)聯(lián)內(nèi)容,該窗口基本內(nèi)容如下圖所示:

7d6064bc-729f-11ed-8abf-dac502259ad0.png

圖4.6.1

頂部“References”表示該窗口顯示的內(nèi)容與當前光標所在的Symbol是引用關(guān)系,這個關(guān)系可以在設(shè)置中選中,還有“Calls”、Contains等關(guān)系,后面會講到。中間內(nèi)容區(qū)顯示了引用當前Symbol的地方,該例子中就是表示變量“_isFaceIDSwitchOpen”被當前類KeyguardUpdateMonitor中isFaceIDSwitchOpen()方法的第2760、2764、2769行引用。點擊每一行會在Context Window中實時顯示上下文。底部是該窗口的快捷工具箱。

(3)Toolbar各功能簡介

從左往功能依次為

Jump To Definition:將光標移動到所選項被定義的地方,可能是某個方法,或者某個類等。

Symbol Info:彈出一個popup window,顯示Relation Window中被選項的定義。

Lookup Reference:搜索指定或者選中字段的應(yīng)用情況,后面講搜索的時候會詳細講到。

Lock Relation Window:選中后表示鎖住當前窗口,不會實時改變內(nèi)容。

Refresh Relation Window:刷新窗口。

View Relation Outline:以大綱的形式顯示內(nèi)容,如圖4.6.2所示。

View Relation Horizonal Graph:水平顯示內(nèi)容,如圖4.6.3所示。

View Relation Vertical Graph:垂直顯示內(nèi)容,如圖4.6.1所示。

Relation Window Properties:窗口屬性設(shè)置,里面功能點比較多,這里單獨劃出一個小節(jié)詳細說明。

7d7228aa-729f-11ed-8abf-dac502259ad0.png

圖4.6.2

7d85b4ba-729f-11ed-8abf-dac502259ad0.png

圖4.6.3

(4)Relation Window Properties

該對話框除了能設(shè)置字體,顏色等外觀屬性外,還能設(shè)置內(nèi)容與光標選項的關(guān)系等多種內(nèi)在聯(lián)系。

7d9ce93c-729f-11ed-8abf-dac502259ad0.png

圖4.6.4

1)Automatic Symbol Tracking

設(shè)置Symbol自動跟蹤相關(guān)屬性,如下圖所示。如果不希望自動跟蹤Symbol,選擇“Off”或者在Toolbar中選擇“Lock Relation Window”即可。

7db1d0a4-729f-11ed-8abf-dac502259ad0.png

這些選項字面意思比較簡單,這里就不啰嗦了。

2)Automatic Expansion Option

Expand duplicate branches:是否展開重復(fù)的分支。

Level:展開分支的層級。比如設(shè)置為“2”,那么被Calls的函數(shù),以及該函數(shù)再調(diào)用的函數(shù)都會顯示。

3)View Relationship

單獨設(shè)置被選中的Symbol類型與Relaiton Window中顯示內(nèi)容的關(guān)系,選中的類型不同,關(guān)系也不一樣。該處列出了“Type”、“Functions”、“Variables/Constants”、“Classes”、“Files”五種類型,以及可以設(shè)置的關(guān)系。例如,如圖4.6.4中,給“Functions”設(shè)置的是“Calls”關(guān)系,那么當鼠標選中某個函數(shù),那么當前Relation Window中就會顯示被該函數(shù)“Calls”的信息。

這些Relation可以分為3類,不同的類型匹配的速度也不一樣,從快到慢依次為:

Contains:顯示當前symbol的內(nèi)容。

Calls:被當前symbol調(diào)用的其他symbol。比如選中了函數(shù),則會顯示被該函數(shù)調(diào)用的其他函數(shù)。

References:顯示有哪些symbol調(diào)用了當前symbol,作用范圍僅在當前文件。比如,選中了某個函數(shù),則會顯示當前文件中調(diào)用了該函數(shù)的函數(shù)。在比較大的項目中,這項關(guān)系的匹配是比較耗時的。

對于“Group multiple references into one item” 以及“Columns”,其中的有些功能還沒太明白,以后搞明白了再補上。

4)Graph按鈕(最右邊一列中的按鈕)

該對話框主要用于設(shè)置關(guān)系圖的外觀,這個比較簡單,不多說了。

7dc3b08a-729f-11ed-8abf-dac502259ad0.png

(5)右鍵菜單欄

該菜單欄中的功能有的在前面講到過,有的比較簡單,就不一一列舉。這里說一下“New Relation Window”,同一個窗口中可以同時打開多個Relation Window。開發(fā)者可以同時打開“Calls”關(guān)系窗口和“References”關(guān)系窗口,根據(jù)自己的需求決定,非常便利。

7dce2380-729f-11ed-8abf-dac502259ad0.png

7、剪貼板窗口(Clip Window)

剪貼板窗口是一個浮動窗口,可以隨意拖動和停留在界面中。它類似于剪貼板,但相比于剪貼板只能保存最近一次的剪切外,該窗口可以保留多個剪貼記錄。

(1)開關(guān)位置 可以在SI界面頂部的Toolbar中點擊“Clip Window”開關(guān),或在頂部菜單欄“View > Clip Window”選擇/取消來顯示/隱藏該窗口。 (2)窗口內(nèi)容 該窗口的顯示信息如下圖。每一個clip項都包含一clip名稱和該clip的內(nèi)容。

7ddff2d6-729f-11ed-8abf-dac502259ad0.png

(3)Toolbar各功能簡介

上圖中最底部的Toolbar,從左往右功能如下:

New Clip:創(chuàng)建一個新的clip。

Delete Clip:刪除選中的clip。

Edit Clip:編輯選中的clip的內(nèi)容。

Cut To Clip:在“Source File Window”選中某字符串,點擊該按鈕,所選擇部分將被剪切并彈出對話框創(chuàng)建一個新的clip,被剪內(nèi)容將作為新clip的內(nèi)容,clip名稱需要自定義。

Copy To Clip:與“Cut To Clip”類似,不同的是,該功能是復(fù)制選中的部分。

Paste From Clip:選中某條clip,如果光標在“Source File Window”內(nèi),點

擊該功能按鈕,會把clip內(nèi)容粘貼在光標處。雙擊選中的clip也有同樣的效果。

Clip Window Properties:設(shè)置該窗口的一些屬性

(4)右鍵菜單欄

在該窗口內(nèi)點擊右鍵,會顯示如下菜單欄。其中功能上面基本都介紹了,這里不贅述,只簡單補充一下“Show Clipboard”。當選中某個clip,并點擊“Show Clipboard”,會彈出一個窗口顯示該clip的內(nèi)容,和點擊“Edit Clip”非常類似,只是無法編輯。

7dfa48fc-729f-11ed-8abf-dac502259ad0.png

8、搜索窗口(Search Results Window)

搜索功能絕對是一個最常用的功能之一了,使用十分頻繁,下面對搜索功能及搜索結(jié)果窗口做一些基本的介紹。

(1)搜索功能入口

開發(fā)者可以點擊頂部主菜單欄中“Search”選擇搜索子功能,如下圖4.8.1所示;或者在頂部Toolbar快捷工具欄中點擊相應(yīng)的快捷按鈕進行搜索,如下圖4.8.2紅框部分;或者使用快捷鍵調(diào)出對應(yīng)的搜索功能窗口,如下圖4.8.1所示。

7e0ed902-729f-11ed-8abf-dac502259ad0.png

圖4.8.1

7e220108-729f-11ed-8abf-dac502259ad0.png

圖4.8.2

(2)Search

該功能主要在當前文件范圍內(nèi)進行搜索,根據(jù)自身的需要添加搜索條件,一般選擇默認就可以了。

7e2bff00-729f-11ed-8abf-dac502259ad0.png

圖4.8.3

Find:需要搜索的字符串,點擊右邊倒三角可以查看并選擇歷史搜索記錄。

Case Sensitive:大小寫敏感。

Use Regular Expressions:使用正則表達式。

Wrap Arround:(還沒清楚其作用)

Select When Found:找到該字符串時,該字符串被選中。

Whole Words Only:只包含整個要搜索的字符串。如果不選中,則包含欲搜索字符串的字符串都會被搜索到。

Forward/Backward 以當前文件中鼠標光標所在處為參照點,向前/向后搜索。與圖4.8.1或圖4.8.2中“Search Forward”/“Search Backward”功能一致。

Selection 在當前文件可見范圍內(nèi)搜索。

Whole File (截圖紅框①處):在當前整個文件內(nèi)搜索。

Search(截圖紅框②處):如果能搜索到,鼠標只會定位到滿足條件的某一個搜索結(jié)果處。

Whole File(截圖紅框③處):點擊該按鈕,會在當前整個文件中進行搜索,如果有多個搜索結(jié)果,會顯示一個搜索結(jié)果列表,如下圖4.8.4所示。

Files(截圖紅框④處):點擊該按鈕,會跳轉(zhuǎn)到“Search Files”功能界面,下面會詳細介紹。

7e3ae538-729f-11ed-8abf-dac502259ad0.png

圖4.8.4

(3)Search Files

與“Search”功能相比,這里用于在多個文件中進行搜索。如下圖所示,為其功能界面,以下將對該功能進行簡單介紹。

7e52a2fe-729f-11ed-8abf-dac502259ad0.png

圖4.8.5

1)先看“Options”(上圖紅框②處)中各選項的含義(在“Search”功能中講到過的選項含義,這里不再贅述):

Project Wide:在整個項目范圍內(nèi)的所有文件中進行搜索。

Include Subdirectories:在圖4.8.5紅框①處如果選中的是目錄,該選項用于

選擇是否要在該目錄的子目錄中進行遞歸搜索。

Find Non-Matching:

Skip Inactive Code:跳過無效代碼查找。

Skip Comments:跳過注釋查找。

Search Only Comments:僅在注釋中查找。

2)Find:在“Search”功能中講過,這里不贅述。

3)File Name:制定查找范圍,可以是具體的某個文件,也可以是某個文件夾??梢詧D4.8.5紅框①處中選擇,也可以在截圖右下角點擊“Browser”按鈕進行選擇。左邊的倒三角點擊后,顯示歷史記錄列表。

4)圖4.8.5紅框①區(qū):該區(qū)域會顯示具體的文件或者目錄。點擊③處“Show Dirs”,該按鈕顯示的文字會在“Show Dirs”/“Show Files”之間換號,①區(qū)內(nèi)容也會隨之變化。在②區(qū)選擇“Project Wide”也會顯示所有文件,選擇“Include Subdirectories”則會顯示目錄。

5)Search Results:④區(qū)中的選項為設(shè)置搜索結(jié)果需要顯示哪些內(nèi)容,如圖4.8.4所示。

值得注意的是:在選擇源文件的時候,不是硬盤中所有的文件都能顯示,這里和前文介紹新建項目時所選擇的源碼路徑所在盤符有關(guān)。

(4)Search Project/Lookup Reference

“Search Project“和”Lookup Reference”功能界面除了左上角標題欄不同外,其它一模一樣,這里就以“Lookup Reference”為例,如下圖所示。

7e69b9a8-729f-11ed-8abf-dac502259ad0.png

1)Search Method:這里有四個選項

Simple String:最普通的形式,把搜索項作為字符串,可以查找文件中出現(xiàn)的任意字符或者字符串,當工程比較大的時候查找比價慢。

Regular Expression:正則表達式方式搜索。可以參考:【Source Insight搜索正則表達式使用技巧】

Keyword Expression/Lookup Reference:這兩種方式查找的結(jié)果基本相同,只是顯示方式略有差異。有些文章中說,這兩種方式都是使用SI預(yù)先建立的數(shù)據(jù)庫,查找起來速度相當快,但通常這種速度只在查找標識符時有明顯效果,且強烈建議像函數(shù)名、變量名等的查找,用這兩種方式進行查找。這里筆者聲明一下,筆者暫時還沒體驗到這里說的快速,在浩瀚的源碼中搜索某個函數(shù)或變量時,都很費事,所以這里不敢打包票。

2)Lines of Context:每一條結(jié)果項顯示的行數(shù)。前面我們可以看到,不同方式的搜索結(jié)果種,有的只顯示一行,有的顯示多行,就和這里有關(guān)。有的行數(shù)可以編輯,而有的不能編輯。

3)Search In:指定搜索范圍。

4)Find Reference To:這個lable會根據(jù)“Search Method”中方式的選擇而變化。其中的內(nèi)容為搜索項,點擊倒三角會顯示搜索記錄列表。

(5)Search Result Window

其實前面已經(jīng)講到過該窗口了,當搜索完后,會展示一個窗口用于顯示搜索結(jié)果,如下圖所示,紅色框中顯示了有多少個匹配項,多少個文件。主內(nèi)容區(qū)也顯示文件名,所在行數(shù)等信息。

7e7f7d74-729f-11ed-8abf-dac502259ad0.png

圖4.8.10

下圖是一個完整的搜索結(jié)果及其它窗口交互界面。當選擇“Search Result Window”中某一項時,會在“Context Window”中實時顯示其上下文內(nèi)容,如下圖中④去所示。在搜索結(jié)果項前都有一個紅色按鈕,如③區(qū)所示。點擊對應(yīng)項該按鈕,會顯示其對應(yīng)的“Source File Window”及所搜索字段所在位置,且也有一個紅色按鈕,如下圖②區(qū)所示,點擊這些按鈕,界面會在“Source File Window”和“Search Result Window”之前來回切換。下圖①區(qū)顯示的Toolbar按鈕,我們在前面講Toolbar的時候介紹過,是"Go To Previous Link / Go To Next Link",此時點擊這兩個按鈕會跳轉(zhuǎn)到前一個/后一個搜索結(jié)果鏈接。

(6)其他

在圖4.8.1中“Search”子菜單中還有很多選項,有的比較簡單,有的前文中陸陸續(xù)續(xù)介紹過,這里就不贅述了。

9、上下文窗口(Context Window)

上下文窗口是SI中一個革新功能,在用戶瀏覽或者編輯源碼過程中,會實時自動顯示鼠標點擊或選中部分的相關(guān)信息,可以簡單地看做是預(yù)覽功能。

(1)開關(guān)位置

上下文窗口的顯示/隱藏開關(guān)位于菜單欄“View > Context Window” 或 Toolbar中“Context Window”按鈕。

(2)窗口內(nèi)容顯示

上下文窗口位于前面SI概貌圖的左下角,其顯示內(nèi)容,會根據(jù)鼠標所選取或點擊的內(nèi)容的類型而有很大差別。下表總結(jié)了不同的鼠標行為與相應(yīng)的上下文窗口顯示結(jié)果(摘自SI官方幫助文檔):

7e919540-729f-11ed-8abf-dac502259ad0.png

1)在源文件窗口操作時 如果選中的是源文件窗口中的符號或局部變量,參數(shù)等,該窗口會顯示選中內(nèi)容被定義(如果是方法、類或結(jié)構(gòu)體等,下同)或聲明(如果是全局變量或引用等,下同)的上下文信息。如下圖顯示的是在源文件窗口中選中“reason”時的結(jié)果:頂部顯示了選中的內(nèi)容“reason”,類型“Locol Variable”,所在文件名“SystemServer.java”,所在文件路徑等;中間顯示區(qū)高亮顯示了“reason”的定義處,以及它所在的上下文信息——函數(shù)performPendingShutdown()內(nèi);底部為工具欄,這個后面單獨講到。

7ea88386-729f-11ed-8abf-dac502259ad0.png

如果在源文件窗口中輸入信息,如果以這個字符串開頭的符號有多個,則會在上下文窗口中顯示匹配的符號列表。如下圖顯示的就是在源碼文件中輸入“star”字符串后該窗口的表現(xiàn)。

7ec7c4a8-729f-11ed-8abf-dac502259ad0.png

2)在Project Window操作時

如果當前Project Window顯示的是文件,且鼠標選中了其中一個文件,Context Window中顯示的則是文件內(nèi)容。

如果當前Project Window顯示的是符號,鼠標選中后,Context Window中則會顯示符號的聲明或這定義的上下文代碼。

3)在Clip Window操作時

當鼠標選中Clip Window列表中的某一項Clip時,Context Window頂部會顯示當前內(nèi)容類型為“Clip”,Clip名稱為“Reason”,內(nèi)容來源為“Text from Typing”,Clip內(nèi)容為“Text Clip in Context Window”,當雙擊Clip內(nèi)容時,會彈出一個編輯窗口,編輯其內(nèi)容。

7edb46b8-729f-11ed-8abf-dac502259ad0.png

4)在Symbol Window操作時

如果當期鼠標選中的是Symbol中的某一個符號,那Context Window顯示的是對符號的定義或聲明。

5)在Relation Window操作時

如果當前鼠標選中的是Relation Window中的內(nèi)容時,Context Window中顯示的是該引用項所在的位置。如下圖中,Relation Window顯示的是SystemServer.java類中performPendingShutdown()方法中的局部變量reason的應(yīng)用者列表,當鼠標點擊最后一條時,Context Window就定位并高亮顯示了該引用項的位置。

7ef755d8-729f-11ed-8abf-dac502259ad0.png

7f04fdaa-729f-11ed-8abf-dac502259ad0.png

(3)底部工具欄

下圖為Context Wiindow中底部的工具欄,黃框部分功能參考SI頂部Toolbar中部分,這里不贅述。藍框部分功能為:Complete Symbol、Lock Context Window、Context Window Properties

7f193f36-729f-11ed-8abf-dac502259ad0.png

Complete Symbol:自動補全符號功能。即當用戶在Source File Window區(qū)域輸入字符串時,點擊該按鈕可以顯示以該字符串開頭的符號列表,供用戶選擇自動補全。如下圖所示:

Lock Context Window:上下文窗口鎖。選中該按鈕后,上下文窗口內(nèi)容就會被鎖住,不會實時變化;再次點擊,則取消鎖功能。

Context Window Properties:上下文窗口屬性。設(shè)置上下文窗口的字體類型/大小/顏色,背景色,跟蹤屬性,顯示內(nèi)容等特性。

7f295434-729f-11ed-8abf-dac502259ad0.png

(4)右鍵菜單欄

在Context Window上點擊右鍵調(diào)出功能菜單如下所所示,除了紅框中“Project-Wide Rename(顧名思義:項目范圍內(nèi)對選中項重命名)”外其他都在前面講過了,這里不贅述。

7f3bfa80-729f-11ed-8abf-dac502259ad0.png

五、幫助功能

正如大多數(shù)軟件及開發(fā)工具包一樣,官方提供的幫助文檔就是最好的教程,SI也不例外。當然這需要讀者有一定的英文文檔閱讀基本功,因為這類文檔都是英文版的。從筆者的經(jīng)驗來看,語法什么的其實不那么復(fù)雜,關(guān)鍵的生僻單詞可以查詞典,也不是難事,反而是閱讀的耐心才是閱讀英文文檔的關(guān)鍵。下面簡單介紹一下SI的幫助相關(guān)的功能。

1、功能入口

點擊SI頂部菜單欄“Help”子菜單欄,即可顯示“幫助”相關(guān)的子功能

7f5149da-729f-11ed-8abf-dac502259ad0.png

2、幫助文檔

點擊列表中的“Help”或者快捷鍵F1,會調(diào)出官方幫助文檔來,如下圖所示:

7f5ec5a6-729f-11ed-8abf-dac502259ad0.png

該部分提供了“目錄”、“索引”、“搜索”、“書簽”等搜索方式,搜索起來非常方便。從上面截圖可以看到“Window Tour”,是不是似曾相識?沒錯,筆者前文將到的常用窗口功能,就有一部分是取材于該幫助文檔。該文檔的使用還是比較簡單的,這里就不啰嗦了。

2、Help Mode 點擊該項后,會在界面上出現(xiàn)一個鼠標箭頭+“?”的符號,隨著鼠標移動,只要在SI界面上點擊某個窗口或按鈕,就會調(diào)出幫助文檔,并顯示點擊處相關(guān)的幫助信息。

3、HTML Help/SDK Help

用于加載本地的一些幫助文檔。

4、Create Key List

會彈出如下文檔,記錄了SI的功能點,以及對應(yīng)的快捷鍵。開發(fā)者可以在其中增、刪、改、查快捷鍵。

7f7df174-729f-11ed-8abf-dac502259ad0.png

形式上類似于上面的“Create Key List”,功能上顯示了SI的功能點以及對該功能點的描述。

7f9268f2-729f-11ed-8abf-dac502259ad0.png

6、Toolbar幫助快捷按鈕

在前文講“Toolbar”的時候講到過,這里再提一下。SI頂部Toolbar上有兩個幫助相關(guān)的快捷按鈕,如下圖所示

7bf59b9c-729f-11ed-8abf-dac502259ad0.png

這兩個功能前面也都提到了,這里不贅述。

7、Other

菜單欄中還有“Serial Number”、“Source Insight Web Site”、“About Source Insight”功能,比較簡單,主要用于顯示一些SI的基本信息,這里也不啰嗦了。

筆者之所以特地用一個章節(jié)來寫“Help”這個用法很簡單的功能,是因為筆者在學(xué)習(xí)SI時,就極大地收益于該幫助文檔。該文章中的不少內(nèi)容也是取材于該文檔。與此同時,從使用其他軟件和SDK的經(jīng)歷來看,對官方幫助文檔的作用有著深切的體會。所以筆者在以后的開發(fā)和學(xué)習(xí)中,會更加加強對官方文檔的閱讀,這一節(jié)也是用于勉勵自己,也建議讀者也能夠養(yǎng)成閱讀官方文檔的好習(xí)慣。

六、宏(Marco)的使用

介紹SI,就不得不提到宏。宏是SI的一個強大的功能,有的人甚至認為是SI中最強大最有趣的功能。用戶可以通過編寫宏來實現(xiàn)自定義功能,極大地提高效率。筆者以前在網(wǎng)上找到過一個這方面寫得挺好的教程,作者非常用心,筆者這里就不重復(fù)造這個輪子了(當然筆者在這方面經(jīng)驗和水平都有限-_-),這里把該教程分享出來:

該教程介紹了當前廣受歡迎的三個宏:Quicker、Code Review、Chnchar的使用,配置等方面的內(nèi)容。

七、常用技巧

本節(jié)主要記錄一些比較實用且比較零散的使用技巧。 1、查看最近打開的文件列表。

7fb6aab4-729f-11ed-8abf-dac502259ad0.png

可以結(jié)合Toolbar中的“Go Back/Go Forward”快捷鍵使用。

7b5226ec-729f-11ed-8abf-dac502259ad0.png

2、自定義快捷鍵 開發(fā)者可以根據(jù)自己習(xí)慣,自行定義快捷鍵。功能路徑為:Menu > Options > Key Assigments

7fd647fc-729f-11ed-8abf-dac502259ad0.png

選擇要修改的功能項,點擊“Assign New Key”會彈出上圖底部的操作說明,按照操作進行即可自定義快捷鍵。如果想恢復(fù)默認,點擊“Reset”按鈕即可。

SI的功能太多了,筆者不可能全部能寫出來,這里先從整體上做介紹并打好框架,后續(xù)筆者會根據(jù)自己的使用情況,慢慢完善。由于經(jīng)驗和水平有限,難免有描述錯誤或者不妥之處,請讀者多多指教!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    797

    瀏覽量

    30928
  • Source
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    9749
  • insight
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2154

原文標題:神器必會!特別好使的編輯器Source Insight

文章出處:【微信號:技術(shù)讓夢想更偉大,微信公眾號:技術(shù)讓夢想更偉大】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Source Insight學(xué)習(xí)教程

    Source Insight實質(zhì)上是一個支持多種開發(fā)語言(java,c ,c 等等)的編輯器,只不過由于其查找、定位、彩色顯示等功能的強大,常被我們當成源代碼閱讀工具使用。
    發(fā)表于 12-14 16:29 ?3.4w次閱讀
    <b class='flag-5'>Source</b> <b class='flag-5'>Insight</b>學(xué)習(xí)教程

    【EVB-T335開發(fā)板試用體驗】3、建立linux內(nèi)核source insight工程

    Insight安裝與破解3、如何建立evb-t335 linux內(nèi)核工程1、Source Insight簡介 Source Insight
    發(fā)表于 03-08 13:52

    Source Insight(程序編輯器)分享!

    一個很不錯的代碼編輯工具,支持自動完成功能,對多種語言支持甚至HDL語言,對專用編程來說非常強大。完全可以代替MDK的文本編輯器,MDK的實是太弱了,尤其是對C++的支持和代碼龐大的的情況。用
    發(fā)表于 09-05 04:35

    Source insight使用說明

    Source insight 使用說明Source insight 軟件版本:V4.00.0084。建議都使用 V4.0 版本的 Source
    發(fā)表于 01-10 08:21

    Souurce Insight是什么?有何作用

    S阿斯達斯oSouurceSource Insight是一個功能強大的,面向項目的編程編輯器,代碼瀏覽和分析,可幫助您在工作和計劃??時理解代碼。
    發(fā)表于 01-12 08:20

    Source Insight 3.5 編輯器

    電子發(fā)燒友網(wǎng)站提供《Source Insight 3.5 編輯器.exe》資料免費下載
    發(fā)表于 12-09 00:36 ?6次下載

    Source_Insight教程及技巧(大全)—最終整合版

    Source_Insight教程及技巧(大全)——最終整合版
    發(fā)表于 01-18 15:08 ?0次下載

    Source_Insight使用教程

    Source_Insight使用教程,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-18 15:08 ?19次下載

    Source_Insight教程及技巧(大全)——最終整合版

    Source Insight 是一個功能十分強大、使用也很方便的程序編輯器。它內(nèi)置對C/C++、Java甚至x86 匯編語言程序的解析,在你編程時提供有用的函數(shù)、宏、參數(shù)等提示,因而,Sour
    發(fā)表于 07-26 10:26 ?0次下載

    (Source_Insight教程及技巧(大全)——最終整合版

    (Source_Insight教程及技巧(大全)——最終整合版
    發(fā)表于 10-19 09:18 ?0次下載
    (<b class='flag-5'>Source_Insight</b>教程及技巧(大全)——最終整合版

    Source_Insight3.5+注冊碼

    Source_Insight3.5+注冊碼
    發(fā)表于 10-23 08:48 ?24次下載

    迅捷pdf編輯器

    迅捷pdf編輯器
    發(fā)表于 11-06 15:50 ?4次下載

    Source Insight 4.0程序編輯器代碼瀏覽的數(shù)據(jù)手冊免費下載

    source insight是一個面向項目開發(fā)的程序編輯器和代碼瀏覽,可支持C/C++或Java等多種語言,還可以創(chuàng)建自己的符號數(shù)據(jù)庫,方便實用。華軍軟件園免費為您提供
    發(fā)表于 11-29 08:00 ?3次下載
    <b class='flag-5'>Source</b> <b class='flag-5'>Insight</b> 4.0程序<b class='flag-5'>編輯器</b>代碼瀏覽<b class='flag-5'>器</b>的數(shù)據(jù)手冊免費下載

    source insight4.0的安裝教程

    source insight是一個面向項目開發(fā)的程序編輯器和代碼瀏覽,支持幾乎所有的語言, 如C、C++、ASM、PAS、ASP、HTML等常見的,還支持自己定義關(guān)鍵字,
    發(fā)表于 05-23 17:44 ?8次下載

    vim編輯器如何使用

    Vim編輯器是一個功能強大的文本編輯器,它基于Vi進行改進,并增加了許多新特性。Vim編輯器的使用主要涉及其不同的工作模式及相應(yīng)操作。以下是Vim編輯器的基本使用方法: 一、Vim
    的頭像 發(fā)表于 08-30 14:58 ?168次閱讀