This file is indexed.

/usr/share/SuperCollider/HelpSource/Classes/SCDoc.schelp is in supercollider-common 1:3.8.0~repack-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
class:: SCDoc
summary:: Help system main class
categories:: HelpSystem
related:: Reference/SCDocSyntax, Guides/WritingHelp, Classes/SCDocHTMLRenderer, Classes/SCDocNode, Classes/SCDocEntry

DESCRIPTION::
SCDoc manages the SuperCollider documentation system.

It uses parses help files written in link::Reference/SCDocSyntax##SCDoc markup language:: and renders them as human-readable documents.

A guide to writing help can be found here: link::Guides/WritingHelp::.

CLASSMETHODS::

subsection:: Document index

method:: indexAllDocuments
Index all documents and undocumented classes on the system, putting them in the code::SCDoc.documents:: dictionary. If run inside a Routine, this method will yield occasionally.

Run this method if you added a new document and want to see the changes without restarting SuperCollider.

argument:: clearCache
If true, force re-render of files even if the schelp source file is not newer than the destination.

discussion::
This will take a couple of seconds, and will be done automatically once before any help can be viewed. You might consider putting this in your startup.scd file to avoid getting this delay later when you decide to view a helpfile.

method:: documents
The dictionary of indexed documents. They keys are the path relative to the Help folder and without extension, like teletype::Classes/SinOsc:: or teletype::Reference/SCDocSyntax::. The values are instances of link::Classes/SCDocEntry::

method:: didIndexDocuments
A Boolean indicating if code::SCDoc.indexAllDocuments:: was called in this session yet.

method:: helpSourceDir
get/set the system-wide directory of help sourcefiles. Defaults to code::Platform.classLibraryDir.dirname +/+ "HelpSource":: and should typically not be changed by the user.

method:: helpSourceDirs
get the list of HelpSource folders, including extensions and quarks.
discussion::
This searches recursively for all folders named "HelpSource" under code::Platform.userExtensionDir:: and code::Platform.systemExtensionDir:: as well as including the system-wide code::helpSourceDir::

method:: findHelpFile
Find help for a given string. Tries to be smart.
returns:: the URL for help on given string

method:: verbosity
Verbosity level. 0 is silent.

subsection:: Parsing and Rendering

private:: checkVersion, exportDocMapJS, handleCopyMethods, postMsg, prParseFile, renderUndocClass

method:: renderer
The default renderer, defaults to link::Classes/SCDocHTMLRenderer::

method:: helpTargetDir
get/set the user help target directory. Defaults to code::Platform.userAppSupportDir +/+ "Help":: and should typically not be changed by the user.

method:: parseFileFull
Parse file.
argument::
Full path to .schelp file
returns::
An link::Classes/SCDocNode:: tree

method:: parseFileMetaData
Parse only the stuff needed for metadata.
argument::
Base HelpSource directory.
argument::
Path relative above dir.
returns::
An link::Classes/SCDocNode:: tree

method:: parseFilePartial
Parse a file without header, for merging of document additions
argument::
Full path to .ext.schelp file
returns::
An link::Classes/SCDocNode:: tree

method:: parseDoc
Parse the files associated with an link::Classes/SCDocEntry::, including any document additions (teletype::*.ext.schelp::)
argument:: doc
The link::Classes/SCDocEntry:: to parse.
returns::
An link::Classes/SCDocNode:: tree

method:: parseAndRender
Parse and render a specific document.
argument:: doc
The link::Classes/SCDocEntry:: to parse and render.

method:: renderAll
Render all help-files. Useful mainly if you want to render all help to put online or similar.
argument:: includeExtensions
If false, skip quarks, plugins and other extensions.

method:: prepareHelpForURL
Prepare help for the given URL by checking if the file needs rendering from schelp source, or some other action needs to be done.
Used as a wrapper to get on-the-fly rendering and processing of help files.
argument:: url
The url to prepare. If this is not a local file inside link::#*helpTargetDir:: then it will just pass through the url directly.
returns:: the URL or nil if file not found.

subsection:: Utilities

method:: getMethodDoc
Extract the link::Classes/SCDocNode:: tree for the specified method documentation.
argument::
Name of class
argument::
Name of method, prefixed with teletype::*:: for classmethods and teletype::-:: for instancemethods.
returns::
An link::Classes/SCDocNode:: tree

method:: makeClassTemplate
Create a schelp template for specified class.
argument:: doc
The link::Classes/SCDocEntry:: for the undocumented class.
returns::
Returns the template string.

method:: classHasArKrIr
argument:: c
The link::Classes/Class:: to check.
Returns:: code::true:: if the class responds to ar, kr or ir classmethods.

section:: Parser node tree output
The SCDoc parser outputs a tree of link::Classes/SCDocNode::s

The nodes reflects the tags in the input, but it's not a one-to-one correspondence.
A more detailed structure is added in the node tree, for easier rendering.

Example:

DOCUMENT
tree::
    ## HEADER
    tree::
        ## TITLE teletype::"SinOsc"::
        ## SUMMARY teletype::"Interpolating sine wavetable oscillator"::
        ## RELATED
        tree::
            ## STRING teletype::"Classes/FSinOsc"::
            ## STRING teletype::"Classes/SinOscFB"::
        ::
        ## CATEGORIES
        tree::
            ## STRING teletype::"UGens>Generators>Deterministic"::
            ## STRING teletype::"UGens>Oscillators"::
        ::
    ::
    ## BODY
    tree::
        ## DESCRIPTION
        tree::
            ## PROSE
            tree::
                ## TEXT teletype::"A paragraph with "::
                ## LINK teletype::"Classes/Osc##a link"::
                ## TEXT teletype::" to another document."::
            ::
            ## PROSE
            tree::
                ## TEXT teletype::"Another paragraph with "::
                ## STRONG teletype::"strong words"::
                ## TEXT teletype::" in it."::
            ::
        ::
        ## CLASSMETHODS
        tree::
            ## PROSE
            tree::
                ## TEXT teletype::"Some text..."::
            ::
            ## CMETHOD
            tree::
                ## METHODNAMES
                tree::
                    ## STRING teletype::"ar"::
                    ## STRING teletype::"kr"::
                ::
                ## METHODBODY
                tree::
                    ## PROSE
                    tree::
                        ## TEXT teletype::"Some text..."::
                    ::
                    ## ARGUMENTS
                    tree::
                        ## ARGUMENT teletype::"freq"::
                        tree::
                            ## PROSE
                            tree::
                                ## TEXT teletype::"Frequency in hertz"::
                            ::
                        ::
                        ## ARGUMENT teletype::"phase"::
                        tree::
                            ## PROSE
                            tree::
                                ## TEXT teletype::"Phase modulation"::
                            ::
                        ::
                    ::
                ::
            ::
        ::
        ## EXAMPLES
        tree::
            ## PROSE
            tree::
                ## TEXT teletype::"Here are some examples:"::
            ::
            ## CODEBLOCK
            teletype::
"{ SinOsc.ar(200, 0, 0.5) }.play;
// modulate freq
{ SinOsc.ar(XLine.kr(2000, 200), 0, 0.5) }.play;
// modulate freq
{ SinOsc.ar(SinOsc.ar(XLine.kr(1, 1000, 9), 0, 200, 800), 0, 0.25) }.play;
// modulate phase
{ SinOsc.ar(800, SinOsc.ar(XLine.kr(1, 1000, 9), 0, 2pi), 0.25) }.play;"
::
        ::
        ## SECTION teletype::"Another section"::
        tree::
            ## PROSE
            tree::
                ## TEXT teletype::"Some text..."::
            ::
        ::
    ::
::