IWpfTextView.TextViewLines
은 보이는 선의 집합입니다. 경우에 따라 첫 번째 줄과 마지막 줄이 숨겨져 있거나 부분적으로 표시 될 수 있습니다 (그러나 두 번째 줄부터 두 번째 줄까지 항상 완전히 볼 수 있어야 함). 완전히 보이는 선의 컬렉션을 얻으려면 IWpfTextView.TextViewLines.FirstVisibleLine
과 IWpfTextView.TextViewLines.LastVisibleLine
을 사용하거나 ITextViewLine.VisibilityState == VisibilityState.FullyVisible
으로 컬렉션을 필터링하면됩니다.
Span
은 시작 위치와 길이를 감싸는 구조체이지만 실제 텍스트는 보유하지 않습니다. VS Editor에는 여러 가지 종류의 범위가 있습니다. 예를 들어 SnapshotSpan
은 시작 위치, 길이 및 해당 스냅 샷이 속한 스냅 샷을 저장하는 ITextSnapshot
의 범위입니다.
편집 : 제목에 질문을 놓친
죄송합니다.
Point
은 위치를 나타내고, Span
은 범위를 나타냅니다. 매개 변수로 하나를 사용하는 대부분의 VS 편집기 API는 다른 API에 과부하가 걸립니다.
ITrackingPoint
및 ITrackingSpan
은 ITextBuffer
입니다. "추적"은 텍스트 버퍼가 변경 될 때 오프셋/증가/축소를 의미합니다. 그들은 스냅에 불가 지론입니다.
SnapshotPoint
및 SnapshotSpan
은 ITextSnapshot
입니다. 그들은 ITextSnapshot
에 묶여 있으며 변경할 수 없습니다.
ITextViewLine
은 표시하기 위해 형식이 지정된 줄입니다. 일반적으로 변경하지 않고도 Height
또는 VisibilityState
과 같은 시각적 정보 만 가져올 수 있습니다.
좋아, 내 자신의 업데이트. – Chris
실제로 업데이트하는 것을 잊었습니다. 1. TextViews는 줄을 생각하지 않습니다. TextBuffer와 시각적 인 버퍼가 다른 아웃 라인 (outlining), 줄 바꿈 (word wrap) 등 때문입니다. 2. SnapshotSpan vs SnapshotPoint - 스팬은 일련의 문자를 나타냅니다. 포인트, 한 문자. 3. TrackingPoint와 TrackingSpan. 다른 Point 및 Span과 비슷하지만 ViewPort의 위치를 결정하는 데 사용됩니다. 나는 이것들이 정확하다고 생각합니다. 적어도 그런 식으로 움직이는 것 같습니다. – Chris