Skip to content

Commit c033cb3

Browse files
authored
Merge pull request #234 from gui-cs/tig/add-namespace-documentation
Add namespace-level XML documentation for all Terminal.Gui.Editor namespaces
2 parents b980078 + 2484e20 commit c033cb3

10 files changed

Lines changed: 240 additions & 0 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Completion;
7+
8+
/// <summary>
9+
/// Provides the completion (auto-complete / IntelliSense-style) infrastructure for the editor.
10+
/// Contains the <see cref="IEditorCompletionProvider" /> interface that consumers implement to supply
11+
/// completion candidates, and the <see cref="CompletionItem" /> type that describes individual suggestions.
12+
/// </summary>
13+
[CompilerGenerated]
14+
internal static class NamespaceDoc;
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Document;
7+
8+
/// <summary>
9+
/// <para>
10+
/// UI-framework-independent document model. This namespace contains the rope-backed
11+
/// <see cref="TextDocument" />, <see cref="DocumentLine" />, <see cref="TextAnchor" />,
12+
/// <see cref="UndoStack" />, <see cref="ITextSource" />, <see cref="TextSegment" />, and supporting types
13+
/// that form the core data layer of the editor.
14+
/// </para>
15+
/// <para>
16+
/// The document layer has no dependency on Terminal.Gui and can be used independently for text manipulation,
17+
/// analysis, or testing. It is adapted from
18+
/// <a href="https://github.com/AvaloniaUI/AvaloniaEdit">AvaloniaEdit</a>'s pure-data layers.
19+
/// </para>
20+
/// </summary>
21+
[CompilerGenerated]
22+
internal static class NamespaceDoc;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Document.Folding;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Code-folding infrastructure for collapsing and expanding regions of a document.
11+
/// </para>
12+
/// <para>
13+
/// Contains <see cref="FoldingManager" /> (manages fold state for a document),
14+
/// <see cref="FoldingSection" /> (represents a single collapsible region),
15+
/// <see cref="IFoldingStrategy" /> (pluggable strategy interface), and built-in strategies
16+
/// (<see cref="BraceFoldingStrategy" />, <see cref="XmlFoldingStrategy" />).
17+
/// </para>
18+
/// <para>
19+
/// Foldings auto-expand when the caret moves inside them. Consumers can implement custom
20+
/// <see cref="IFoldingStrategy" /> instances for language-specific folding rules.
21+
/// </para>
22+
/// </summary>
23+
[CompilerGenerated]
24+
internal static class NamespaceDoc;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Highlighting;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Syntax highlighting engine driven by xshd (XML Syntax Highlighting Definition) files.
11+
/// </para>
12+
/// <para>
13+
/// The core types are <see cref="IHighlightingDefinition" /> (describes a language's highlighting rules),
14+
/// <see cref="DocumentHighlighter" /> (applies rules to a <see cref="Document.TextDocument" /> producing
15+
/// <see cref="HighlightedLine" />s), and <see cref="HighlightingManager" /> (registry of built-in and
16+
/// user-loaded definitions, with lookup by name or file extension).
17+
/// </para>
18+
/// <para>
19+
/// Built-in definitions include C#, C++, Java, JavaScript, Python, PowerShell, TSQL, VB, JSON, HTML, XML,
20+
/// CSS, and Markdown. Highlight colors compose with the active Terminal.Gui color scheme.
21+
/// </para>
22+
/// </summary>
23+
[CompilerGenerated]
24+
internal static class NamespaceDoc;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Highlighting.Xshd;
7+
8+
/// <summary>
9+
/// <para>
10+
/// xshd (XML Syntax Highlighting Definition) file format support: loaders, savers, and AST types.
11+
/// </para>
12+
/// <para>
13+
/// Contains <see cref="HighlightingLoader" /> (reads xshd XML into an <see cref="XshdSyntaxDefinition" />
14+
/// and compiles it into an <see cref="Terminal.Gui.Editor.Highlighting.IHighlightingDefinition" />),
15+
/// <see cref="SaveXshdVisitor" /> (serializes definitions back to XML), and the AST node types
16+
/// (<see cref="XshdRuleSet" />, <see cref="XshdSpan" />, <see cref="XshdRule" />,
17+
/// <see cref="XshdKeywords" />, <see cref="XshdColor" />, etc.) that represent the parsed structure.
18+
/// </para>
19+
/// <para>
20+
/// Supports both xshd v1 and v2 formats via <see cref="V1Loader" /> and <see cref="V2Loader" />.
21+
/// </para>
22+
/// </summary>
23+
[CompilerGenerated]
24+
internal static class NamespaceDoc;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Indentation;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Pluggable indentation strategies that control how the editor auto-indents new lines.
11+
/// </para>
12+
/// <para>
13+
/// Contains the <see cref="IIndentationStrategy" /> interface and the built-in
14+
/// <see cref="DefaultIndentationStrategy" /> (copies the previous line's leading whitespace on Enter).
15+
/// Consumers can implement custom strategies for language-aware indentation (e.g., increasing indent
16+
/// after an opening brace).
17+
/// </para>
18+
/// </summary>
19+
[CompilerGenerated]
20+
internal static class NamespaceDoc;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor;
7+
8+
/// <summary>
9+
/// <para>
10+
/// <img src="https://raw.githubusercontent.com/gui-cs/Editor/develop/Docs/images/hero.gif"
11+
/// alt="Terminal.Gui.Editor (ted demo app)" />
12+
/// </para>
13+
/// <para>
14+
/// A reusable text-editing <see cref="Terminal.Gui.ViewBase.View" /> for Terminal.Gui. Drop it into your TUI app
15+
/// and you get the editing experience users already expect: caret movement, selection, clipboard, undo/redo,
16+
/// search &amp; replace, folding, syntax highlighting, word wrap, multi-caret editing, and more.
17+
/// </para>
18+
/// <para>
19+
/// The <see cref="Editor" /> class is a <c>View</c> subclass that consumes the
20+
/// <see cref="Document.TextDocument" /> through a cell-grid rendering pipeline
21+
/// (<see cref="Rendering.VisualLineBuilder" /> → <see cref="Rendering.CellVisualLine" />, with pluggable
22+
/// <see cref="Rendering.IVisualLineTransformer" />s and <see cref="Rendering.IBackgroundRenderer" />s).
23+
/// </para>
24+
/// <para>
25+
/// Ships as a single NuGet package: <b>Terminal.Gui.Editor</b>.
26+
/// </para>
27+
/// </summary>
28+
[CompilerGenerated]
29+
internal static class NamespaceDoc;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Rendering;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Cell-grid rendering pipeline that transforms document lines into visual output.
11+
/// </para>
12+
/// <para>
13+
/// The pipeline flows: <see cref="VisualLineBuilder" /> → <see cref="CellVisualLine" /> (composed of
14+
/// <see cref="CellVisualLineElement" />s such as <see cref="TextRunElement" />, <see cref="TabElement" />,
15+
/// <see cref="NewlineGlyphElement" />, and <see cref="FoldingMarkerElement" />).
16+
/// </para>
17+
/// <para>
18+
/// Pluggable extension points:
19+
/// <list type="bullet">
20+
/// <item>
21+
/// <see cref="IVisualLineTransformer" /> — mutates element attributes (syntax highlighting, fold
22+
/// markers).
23+
/// </item>
24+
/// <item><see cref="IBackgroundRenderer" /> — paints cell rectangles (selection, current line, search hits).</item>
25+
/// <item><see cref="IOverlayRenderer" /> — draws overlays above the text (multi-caret indicators).</item>
26+
/// </list>
27+
/// </para>
28+
/// <para>
29+
/// Visual lines are cached with LRU eviction and selectively invalidated from
30+
/// <see cref="Document.TextDocument.Changed" /> offset/length ranges.
31+
/// </para>
32+
/// </summary>
33+
[CompilerGenerated]
34+
internal static class NamespaceDoc;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Document.Search;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Pluggable search strategies for find and replace operations.
11+
/// </para>
12+
/// <para>
13+
/// Contains <see cref="ISearchStrategy" /> (the strategy interface), built-in implementations
14+
/// (<see cref="RegexSearchStrategy" /> and normal/whole-word string search), and
15+
/// <see cref="SearchStrategyFactory" /> for constructing strategies by mode and options.
16+
/// </para>
17+
/// <para>
18+
/// Search strategies operate on <see cref="Terminal.Gui.Editor.Document.ITextSource" /> and return
19+
/// match results as offset/length pairs. The editor's find/replace UI and
20+
/// <see cref="Terminal.Gui.Editor.Rendering.SearchHitRenderer" /> consume these results.
21+
/// </para>
22+
/// </summary>
23+
[CompilerGenerated]
24+
internal static class NamespaceDoc;
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
4+
using System.Runtime.CompilerServices;
5+
6+
namespace Terminal.Gui.Editor.Document.Utils;
7+
8+
/// <summary>
9+
/// <para>
10+
/// Shared utility types used by the document layer and other subsystems.
11+
/// </para>
12+
/// <para>
13+
/// Includes the <see cref="Rope{T}" /> data structure (a balanced B-tree for efficient insert/delete in large
14+
/// sequences), <see cref="Deque{T}" /> (double-ended queue), <see cref="CompressingTreeList{T}" /> (run-length
15+
/// compressed list), <see cref="FileReader" /> (encoding-detecting file reader),
16+
/// <see cref="IFreezable" /> (immutability pattern), and various string/text helpers.
17+
/// </para>
18+
/// <para>
19+
/// These types are adapted from
20+
/// <a href="https://github.com/AvaloniaUI/AvaloniaEdit">AvaloniaEdit</a>'s utility layer and have no
21+
/// dependency on Terminal.Gui.
22+
/// </para>
23+
/// </summary>
24+
[CompilerGenerated]
25+
internal static class NamespaceDoc;

0 commit comments

Comments
 (0)