Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 840ef51d7b08048bfac01f9a38f4b3d382d1cb66 (plain) (blame)
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ui.workbench.texteditor">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ui.workbench.texteditor" id="rulerColumns" name="Ruler Column"/>
      </appInfo>
      <documentation>
         Ruler column contributions are line based information areas that are normally shown in the vertical ruler area of a textual editor.
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="column" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="column">
      <annotation>
         <appInfo>
            <meta.element labelAttribute="name" icon="icon"/>
         </appInfo>
         <documentation>
            The specification of a ruler column contribution.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <choice minOccurs="1" maxOccurs="unbounded">
               <element ref="targetEditor"/>
               <element ref="targetContentType"/>
               <element ref="targetClass"/>
            </choice>
            <element ref="placement"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the unique id of this column
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the column, may be used in the user interface (e.g. in preference pages)
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="icon" type="string">
            <annotation>
               <documentation>
                  an optional icon for the column. May be used in the user interface, for example on preference pages.
               </documentation>
               <appInfo>
                  <meta.attribute kind="resource"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the class implementing the column; must implement &lt;code&gt;org.eclipse.ui.texteditor.rulers.IContributedRulerColumn&lt;/code&gt;
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.texteditor.rulers.IContributedRulerColumn"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="enabled" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  the default enablement state of this column
               </documentation>
            </annotation>
         </attribute>
         <attribute name="global" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  controls whether toggling the visibility of this column operates on all targeted editors, or only the active editor. If true, the ruler is added to all applicable editors when the user enables the column; if false, the ruler is only added to the active editor.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="includeInMenu" type="boolean" use="default" value="true">
            <annotation>
               <documentation>
                  whether to include a &quot;Show/Hide&quot; menu entry for this column in the ruler context menu
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="targetEditor">
      <annotation>
         <documentation>
            Describes an editor that the column is contributed to.  See the &lt;tt&gt;org.eclipse.ui.editors&lt;/tt&gt; extension point. Note that the rulerColumns extension point is typically only supported by line based text editors.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the editor id of the target editor
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.editors/editor/@id"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="targetContentType">
      <annotation>
         <documentation>
            Describes a content type that the column is contributed to. See the &lt;tt&gt;org.eclipse.core.runtime.contentTypes&lt;/tt&gt; extension point. Note that the rulerColumns extension point is typically only supported by line based text editors.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the id of the target content type
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="targetClass">
      <annotation>
         <documentation>
            Describes an editor class that the column is contributed to. Subclasses of the specified class are also targeted by this colum contribution.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the fully qualified name of a class implementing &lt;code&gt;org.eclipse.ui.texteditor.ITextEditor&lt;/code&gt;. The class does not need to be instantiatable. Note that contributing ruler columns to an internal editor class outside of the contributor&apos;s namespace is considered bad practice, as the class name may change without notice.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ui.texteditor.ITextEditor"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="placement">
      <annotation>
         <documentation>
            Describes the placement of this ruler column relative to other contributed columns. A column may request to be placed &lt;em&gt;before&lt;/em&gt; or &lt;em&gt;after&lt;/em&gt; other known columns (identified by their &lt;tt&gt;id&lt;/tt&gt;). Columns that would end up at the same position are ordered by &lt;em&gt;gravity&lt;/em&gt; (see below). If the ordering is contradicting or no ordering can be found that fulfills all placement requests, some placement requirements are dropped until the placement can be achieved. If a column does not fully specify its placement it will be placed at an arbitrary but consistent location.
         </documentation>
      </annotation>
      <complexType>
         <sequence minOccurs="0" maxOccurs="unbounded">
            <choice>
               <element ref="before"/>
               <element ref="after"/>
            </choice>
         </sequence>
         <attribute name="gravity" type="string" use="default" value="1.0">
            <annotation>
               <documentation>
                  a float number between 0.0 and 1.0 that tells how close the column wants to be to the editor, where 0.0 means as far away as possible and 1.0 means as close as possible. After all &lt;i&gt;before&lt;/i&gt; and &lt;i&gt;after&lt;/i&gt; constraints are evaluated, columns that would end up at the same position are ordered by their &lt;i&gt;gravity&lt;/i&gt; value.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="before">
      <annotation>
         <documentation>
            Requests placement before another column. The meaning of &lt;i&gt;before&lt;/i&gt; is similar to the SWT.LEAD flag: In left-to-right environments, &lt;i&gt;before&lt;/i&gt; means &lt;i&gt;to the left of&lt;/i&gt;, in right-to-left environments, it means &lt;i&gt;to the right of&lt;/i&gt;.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the id of another &lt;tt&gt;rulerColumns&lt;/tt&gt; contribution
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.workbench.texteditor.rulerColumns/column/@id"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="after">
      <annotation>
         <documentation>
            Requests placement after another column. The meaning of &lt;i&gt;after&lt;/i&gt; is similar to the SWT.TRAIL flag: In left-to-right environments, &lt;i&gt;after&lt;/i&gt; means &lt;i&gt;to the right of&lt;/i&gt;, in right-to-left environments, it means &lt;i&gt;to the left of&lt;/i&gt;.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the id of another &lt;tt&gt;rulerColumns&lt;/tt&gt; contribution
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.workbench.texteditor.rulerColumns/column/@id"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.3
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a ruler column definition:
&lt;pre&gt;
&lt;extension
  point=&quot;org.eclipse.ui.workbench.texteditor.rulerColumns&quot;&gt;
  &lt;column
    id=&quot;org.eclipse.ui.editors.columns.linenumbers&quot;
    name=&quot;Line Numbers&quot;
    class=&quot;org.eclipse.ui.internal.texteditor.LineNumberColumn&quot;
    enabled=&quot;false&quot;
    global=&quot;true&quot;
    includeInMenu=&quot;false&quot;&gt;
    &lt;placement
       gravity=&quot;0.9&quot;&gt;
       &lt;after id=&quot;org.eclipse.ui.editors.columns.annotations&quot;/&gt;
    &lt;/placement&gt;
    &lt;targetClass
       class=&quot;org.eclipse.ui.texteditor.AbstractDecoratedTextEditor&quot;&gt;
    &lt;/targetClass&gt;
  &lt;/column&gt;
&lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The extension point is supported by the &lt;tt&gt;org.eclipse.ui.texteditor.rulers&lt;/tt&gt; package. &lt;code&gt;RulerColumnRegistry&lt;/code&gt; gives access to all contributions, which in turn are described by &lt;code&gt;RulerColumnDescriptor&lt;/code&gt; instances.
&lt;p&gt;Editors that want to support the extension point need to provide an adapter for &lt;code&gt;IColumnSupport&lt;/code&gt;. &lt;code&gt;AbstractTextEditor&lt;/code&gt; already adapts to &lt;code&gt;IColumnSupport&lt;/code&gt; and hence its subclasses should override &lt;code&gt;createColumnSupport()&lt;/code&gt; with the suggested implementation, rather than providing the adapter again. Subclasses of &lt;code&gt;AbstractDecoratedTextEditor&lt;/code&gt; automatically have this support installed.&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         All ruler column contributions must implement &lt;code&gt;org.eclipse.ui.texteditor.rulers.IContributedRulerColumn&lt;/code&gt;. Many contributors will find the supplied &lt;code&gt;org.eclipse.ui.texteditor.rulers.AbstractContributedRulerColumn&lt;/code&gt; useful which serves as super class for contributed ruler columns. Others might start off &lt;code&gt;org.eclipse.jface.text.source.AbstractRulerColumn&lt;/code&gt; which takes over most painting and scrolling aspects of a line based column and can be extended at various granularity levels. Those subclassing the latter class will have to implement &lt;code&gt;org.eclipse.ui.texteditor.rulers.IContributedRulerColumn&lt;/code&gt; on their own by using &lt;code&gt;org.eclipse.ui.texteditor.rulers.AbstractContributedRulerColumn&lt;/code&gt; as template.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2006, 2008 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>

Back to the top