SyntaxEditor 클래스

정의

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
public ref class SyntaxEditor
public class SyntaxEditor
type SyntaxEditor = class
Public Class SyntaxEditor
상속
SyntaxEditor
파생

설명

위의 편집 전략은 편집기의 클라이언트가 부모 노드를 업데이트하는 변경 사항을 추가한 다음 자식 노드를 업데이트하는 변경 내용(부모 변경 내용에 자식이 포함되어 있지 않은 경우)을 추가하는 오류를 발생시키며, 이를 시도하면 런타임에 throw됩니다. 클라이언트가 자식과 부모를 모두 업데이트해야 하는 경우 먼저 자식 변경을 추가한 다음 부모가 변경 해야 합니다 . 또한 부모 변경은 자식 변경 결과를 볼 수 있도록 적절한 '컴퓨팅' 콜백을 전달해야 합니다.

클라이언트가 대체하려는 경우 트리에 배치된 값을 찾습니다. 이 SyntaxNode 은 해당 노드에 전용 주석을 추가한 다음 '컴퓨팅' 콜백에 전달된 '현재' 노드에서 다시 조회하여 수행할 수 있습니다.

생성자

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)

트리에서 노드를 제거합니다.

RemoveNode(SyntaxNode, SyntaxRemoveOptions)

트리에서 노드를 제거합니다.

ReplaceNode(SyntaxNode, Func<SyntaxNode,SyntaxGenerator,SyntaxNode>)

지정된 노드를 함수에서 생성된 노드로 바꿉다.

ReplaceNode(SyntaxNode, SyntaxNode)

지정된 노드를 다른 노드로 바꿉다.

TrackNode(SyntaxNode)

노드가 변경되지 않더라도 노드가 추적되는지 확인합니다.

확장 메서드

AddAttribute(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddAttributeArgument(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddBaseType(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddInterfaceType(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddMember(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddParameter(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
AddReturnAttribute(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
InsertMembers(SyntaxEditor, SyntaxNode, Int32, IEnumerable<SyntaxNode>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
InsertParameter(SyntaxEditor, SyntaxNode, Int32, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetAccessibility(SyntaxEditor, SyntaxNode, Accessibility)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetExpression(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetGetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetModifiers(SyntaxEditor, SyntaxNode, DeclarationModifiers)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetName(SyntaxEditor, SyntaxNode, String)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetSetAccessorStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetStatements(SyntaxEditor, SyntaxNode, IEnumerable<SyntaxNode>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetType(SyntaxEditor, SyntaxNode, SyntaxNode)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetTypeConstraint(SyntaxEditor, SyntaxNode, String, SpecialTypeConstraintKind, IEnumerable<SyntaxNode>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.
SetTypeParameters(SyntaxEditor, SyntaxNode, IEnumerable<String>)

구문 트리를 변경하기 위한 편집기입니다. 편집기에서는 순서대로 특정 트리에 수행할 변경 내용 목록을 제공하여 작동합니다. 편집기가 만들어진 원래 트리에 적용할 변경 내용이 지정 SyntaxNode 됩니다. 애플리케이션의 의미 체계는 다음과 같습니다.

  1. 제공된 원래 루트는 모든 작업에 대한 '현재' 루트로 사용됩니다. 이 '현재' 루트는 지속적으로 업데이트되어 새로운 '현재' 루트가 됩니다. 원래 루트는 변경되지 않습니다.
  2. 각 변경 내용은 를 SyntaxNode 사용하여 지정된 추적을 통해 SyntaxAnnotation모든 것을 추적하는 '현재' 루트를 생성합니다. 이렇게 하면 트리를 변경하는 이전 변경 내용이 적용된 후 동일한 노드를 찾을 수 있습니다.
  3. 그런 다음 각 변경 내용이 편집기에서 추가된 순서대로 적용됩니다.
  4. 변경은 먼저 '현재' 루트에서 해당 SyntaxNode 를 찾으려고 시도합니다. 해당 노드를 찾을 수 없는 경우 작업은 와 함께 실패합니다 ArgumentException.
  5. 특정 변경 내용은 해당 노드에서 실행되어 변경 내용에 따라 해당 노드를 제거, 바꾸기 또는 삽입합니다. 변경 내용이 'compute' 인수로 대리자를 전달하면 현재 루트에 있는 가 SyntaxNode 제공됩니다. 그런 다음 현재 노드를 새 계산 노드로 바꿔 '현재' 루트를 업데이트합니다.
  6. 그런 다음 '현재' 루트가 반환됩니다.

적용 대상