SynEdit: fpdoc

git-svn-id: trunk@24478 -
This commit is contained in:
martin 2010-04-06 22:15:56 +00:00
parent 9a3a4acd60
commit 906b3f9819
3 changed files with 29 additions and 15 deletions

View File

@ -60,12 +60,6 @@ If the Highlighter uses objects for ranges, it may use an instance of <link id="
<link id="TSynCustomHighlighter.ResetRange">ResetRange</link>
</seealso>
</element>
<element name="TSynCustomHighlighter.ScanFrom">
<short>Recalculate all changed/unknown <link id="TSynCustomHighlighter.SetRange">Ranges</link> (line states) starting from a given line </short>
<descr>
<p>Recalculate all changed/unknown <link id="TSynCustomHighlighter.SetRange">Ranges</link> (line states) starting from a given line </p>
</descr>
</element>
<element name="TSynHighlighterRangeList">
<short>List to hold the Highlighter's Ranges (state at the end of each line). </short>
<seealso>
@ -198,6 +192,16 @@ Before a SynEdit can use a Highlighter (when the Highlighter is set to the SynEd
<link id="TSynCustomHighlighter.GetRange">TSynCustomHighlighter.GetRange</link>
</seealso>
</element>
<element name="TSynCustomHighlighter.ScanRanges">
<short>Recalculate all changed/unknown <link id="TSynCustomHighlighter.SetRange">Ranges</link> (line states)</short>
<descr>
<p>Recalculate all changed/unknown <link id="TSynCustomHighlighter.SetRange">Ranges</link> (line states).
The start/end range is available through the TSynHighlighterRangeList, which tracks all changes to the TSynEditStringMemory by which it is managed.
</p>
</descr>
</element>
</module>
</package>
</fpdoc-descriptions>

View File

@ -38,11 +38,11 @@ This is used by SetCapacity and ItemPointer.</p>
<short>Get a pointer to the Memory for the indexed item </short>
</element>
<element name="TSynEditStrings">
<short>Baseclass for Text-Storage and Virtual-Representation of Text (View)</short>
<descr>
<p>Defines an interface through which SynEdit does (should do) all it's access to the text.</p>
<p/>
</descr>
<short>Baseclass for Text-Storage and Virtual-Representation of Text (View)</short>
</element>
<topic name="TextBuffer and Views">
<short>TextBuffer and Views (Virtual Text Representation)</short>
@ -50,19 +50,26 @@ This is used by SetCapacity and ItemPointer.</p>
<p>SynEdit uses a concept of Text-Views. Those are virtual representations of the Text. A Text-View controls the way SynEdit sees the Text. Text-Views are sitting between the Textbuffer and SynEdit</p>
<p>For Example, a text document may contain tabs. The user wants them to be displayed as Spaces instead, but does not want the stored document to be changed. A Text-View can do that. Since every access to the TextBuffer goes through the View, if SynEdit request some Text, the View can modify the returned result and replace Tabs</p>
<p>Another Example would be a View modifying the data written to the Textbuffer. Such a View could replace Spaces that the User writes in SynEdit, and put appropriate Tabs into the Textbuffer</p>
<p></p>
<p>SynEdit needs no special knowledge about the Views, all Views have the same interface as the Textbuffer. This interface is defined in <link id="TSynEditStrings">TSynEditStrings</link>. Since Views act the same as the Textbuffer they can also be stacked, each View acting on the input/output of the next View. If a View does not need to modify a specific call to the textbuffer, it must simply forward it. A special base class provides the implementation: <link id="TSynEditStringsLinked">TSynEditStringsLinked</link></p>
<p/>
<p>SynEdit needs no special knowledge about the Views, all Views have the same interface as the Textbuffer. This interface is defined in <link id="TSynEditStrings">TSynEditStrings</link>. Since Views act the same as the Textbuffer they can also be stacked, each View acting on the input/output of the next View. If a View does not need to modify a specific call to the textbuffer, it must simply forward it. A special base class provides the implementation: <link id="TSynEditStringsLinked">TSynEditStringsLinked</link>
</p>
<p>Views allow to implement certain Tasks in a single place, and often without the need of making any modification to the code in SynEdit.</p>
<p>In additon to the examples at the start of this doc, Views can also store additional data, which may not be needed (or wanted) to be written to the Textbuffer. An example for this is the trimming of trailing spaces. If the user inputs spaces at the end of line, they are treaded as uncommited text. They are stored in the View, untill they are either committed (along with other text entered after the spaces), or discarded (trimmed)</p>
<p></p>
<p></p>
<p/>
<p/>
<p>Todos:</p>
<p>Folding integration or generally integration of line-number remapping<br/>Highligher/Markup integration</p>
<p></p>
<p/>
<p>List of Views</p>
<p><link id="#SynEdit.SynEditTextTrimmer">TSynEditStringTrimmingList (trim trailing spaces)</link></p>
<p><link id="#SynEdit.SynEditTextTabExpander">TSynEditStringTabExpander</link></p>
<p><link id="#SynEdit.SynEditTextDoubleWidthChars">SynEditStringDoubleWidthChars</link></p>
<p>
<link id="#SynEdit.SynEditTextTrimmer">TSynEditStringTrimmingList (trim trailing spaces)</link>
</p>
<p>
<link id="#SynEdit.SynEditTextTabExpander">TSynEditStringTabExpander</link>
</p>
<p>
<link id="#SynEdit.SynEditTextDoubleWidthChars">SynEditStringDoubleWidthChars</link>
</p>
</descr>
</topic>
</module>

View File

@ -24,6 +24,9 @@
<short>Access to Objects that can be stored with each line of text, not used by SynEdit</short>
<descr>This is not used by SynEdit itself. However SynEdit provides a TStrings interface for external access to the text. This does allow others to store Objects with the text.</descr>
</element>
<element name="TSynEditStringList">
<short>Textbuffer for SynEdit. Stores and Modifies the Text</short>
</element>
</module>
</package>
</fpdoc-descriptions>