SyntaxEditor 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
- 提供的原始根目錄會作為所有作業的「目前」根目錄。 這個 'current' 根目錄會持續更新,成為新的 'current' 根目錄。 原始根目錄永遠不會變更。
- 每個變更都會使用 SyntaxAnnotation追蹤其指定的 SyntaxNode ,產生追蹤所有變更的「目前」根目錄。 這可讓在套用變更之後找到相同的節點,讓樹狀結構變動。
- 接著會套用每個變更,以便將其新增至編輯器。
- 變更會先嘗試在 『current』 根目錄中尋找它 SyntaxNode 。 如果找不到該節點,作業將會失敗並 ArgumentException顯示 。
- 特定變更將會在該節點上執行、移除、取代或根據變更插入。 如果變更以 『compute』 自變數的形式傳遞委派,則會在目前根目錄中找到 SyntaxNode 該委派。 接著,會將目前的節點取代為新的計算節點,以更新 'current' 根目錄。
- 接著會傳回 『current』 根目錄。
public ref class SyntaxEditor
public class SyntaxEditor
type SyntaxEditor = class
Public Class SyntaxEditor
- 繼承
-
SyntaxEditor
- 衍生
備註
上述編輯策略會使編輯器的用戶端發生錯誤,以新增更新父節點的變更,然後新增更新子節點 (的變更,除非父代變更確定包含子系) ,然後嘗試在運行時間擲回。 如果用戶端需要同時更新子系和父系,它 應該 先新增子變更,然後再新增父代變更。 父代變更應該會傳遞適當的「計算」回呼,如此一來,它就會看到子變更的結果。
如果用戶端想要進行取代,請尋找放入樹狀結構中的 值SyntaxNode ,方法是將專用註釋新增至該節點,然後在傳遞至 'compute' 回呼的 'current' 節點中尋找它。
建構函式
SyntaxEditor(SyntaxNode, HostWorkspaceServices) |
建立新的 SyntaxEditor 執行個體。 |
SyntaxEditor(SyntaxNode, SolutionServices) |
建立新的 SyntaxEditor 執行個體。 |
SyntaxEditor(SyntaxNode, Workspace) |
已淘汰.
建立新的 SyntaxEditor 執行個體。 |
屬性
Generator |
SyntaxGenerator,用來建立和變更 SyntaxNode的 。 |
OriginalRoot |
SyntaxNode建構 時SyntaxEditor所指定的 。 |
方法
GetChangedRoot() |
傳回已變更的根節點。 |
InsertAfter(SyntaxNode, IEnumerable<SyntaxNode>) |
在樹狀結構中已經存在的指定節點之後插入新的節點。 |
InsertAfter(SyntaxNode, SyntaxNode) |
將新節點插入樹狀結構中已經存在的指定節點之後。 |
InsertBefore(SyntaxNode, IEnumerable<SyntaxNode>) |
在樹狀結構中已經存在的指定節點之前插入新的節點。 |
InsertBefore(SyntaxNode, SyntaxNode) |
在樹狀結構中已經存在的指定節點之前插入新節點。 |
RemoveNode(SyntaxNode, SyntaxRemoveOptions) |
從樹狀結構中移除節點。 |
RemoveNode(SyntaxNode) |
從樹狀結構中移除節點。 |
ReplaceNode(SyntaxNode, Func<SyntaxNode,SyntaxGenerator,SyntaxNode>) |
將指定的節點取代為函式所產生的節點。 |
ReplaceNode(SyntaxNode, SyntaxNode) |
以不同的節點取代指定的節點。 |
TrackNode(SyntaxNode) |
確定已追蹤節點,即使節點未變更也一樣。 |
擴充方法
AddAttribute(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddAttributeArgument(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddBaseType(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddInterfaceType(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddMember(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddParameter(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
AddReturnAttribute(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
InsertMembers(SyntaxEditor, SyntaxNode, Int32, IEnumerable<SyntaxNode>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
InsertParameter(SyntaxEditor, SyntaxNode, Int32, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetAccessibility(SyntaxEditor, SyntaxNode, Accessibility) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetExpression(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetGetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetModifiers(SyntaxEditor, SyntaxNode, DeclarationModifiers) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetName(SyntaxEditor, SyntaxNode, String) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetSetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetType(SyntaxEditor, SyntaxNode, SyntaxNode) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetTypeConstraint(SyntaxEditor, SyntaxNode, String, SpecialTypeConstraintKind, IEnumerable<SyntaxNode>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|
SetTypeParameters(SyntaxEditor, SyntaxNode, IEnumerable<String>) |
編輯器,用於變更語法樹狀結構。 編輯器的運作方式是提供要 依序對特定樹狀目錄執行的變更清單。 系統會將 SyntaxNode 變更套用至編輯器所建立的原始樹狀結構中。 應用程式的語意如下:
|