-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjadeitehelp.html
180 lines (126 loc) · 10.4 KB
/
jadeitehelp.html
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Jadeite Help </title>
<link href="./jadeitehelp.css" rel="stylesheet" type="text/css" media="screen" />
<link rel="icon" href="https://gemtalksystems.com/wp-content/uploads/gemtalk-globe.ico">
</head>
<body>
<div id="wrapper">
<div class="page-titlebar">
<div class="page-title">
<h1>Jadite Help</h1>
Jadeite is a graphical user interface for code development and debugging, for use with the Rowan code manager <br>
within a GemStone environment. For more information, see the <a href="https://github.com/GemTalk/Jadeite">Github project</a>.<br>
</div>
</div>
<div id="wrapper-contents">
<em>This is a placeholder for online help for Jadeite. </em>
<br><br><br>
Topics are:
<ul>
<li><a href="#BrowserCodeDecoration">Browser code status decoration</a></li>
<li><a href="#FontSizing">Setting Font Sizes</a></li>
<li><a href="#PackagingConvention">Project Packaging Conventions</a></li>
</ul>
<hr>
<h2><a name="BrowserCodeDecoration"></a>Browser Code status decoration
</h2>
<h3>Project status text decoration</h3>
The color, weight (cold) and italic font for a Project's name in the Console's Project List or the Projects Browser indicates the status of the Project in the image, vs. the on-disk status. This project information is also available via Hover help and in the Projects Browser Project tab.
<div class="imageHolder">
<span class="imagelabel"> Project Pane of a Project Browser</span><br>
<img src="ProjectDecoration.jpg" alt="Project List Pane Font Decorations" style="width:307px;height:323px;margin:3px">
</div>
<ul>
<li>Normal font for a Project's name (that is, not red, bold, or italic) indicates that it is loaded, and there are no changes either in the image or on disk.</li>
<li><span class="boldfont">Bold font</span> indicate that the Project has changes in the image that have not been written to disk. </li>
<li><span class="italicfont">Italic font</span> indicates that the Project is dirty on disk, with respect to the git repository. For example, if you have previously written the project to disk without doing a git commit, the disk is dirty, although the image is clean with respect to the disk. Dirty on disk, however, can also mean that you have edited files on disk, or made changes from Jadeite and not saved your image before restarting. </li>
<li><span class="redfont">Red font</span> indicates there is skew; the sha on disk does not match the sha loaded into the image. This can result if you checkout a different git tag or branch, from Jadeite or on the git command line, if you perform git commit outside of jadeite on the git command line, or if you are working in a shared repository and do a git pull after another user has committed.
<br><br>
If you see skew, it is generally recommended to refresh from disk to load the current git sha; otherwise, you should avoid making any changes or performing any git commits, to avoid the risk of logical corruption in the git repository.
<br><br>
Jadeite does not currently support git merge; if you have changes and the repository is in skew, you will need to write your changes to disk without commit, and perform a git merge and resolve any conflicts outside of Jadeite. </li>
<li>(projectname) When the project name is enclosed in parentheis, it indicates that project does not exist on disk.
</ul>
<hr>
<h3>Class and Method status text decoration</h3>
When the Projects Browser displays a Package, it displays a list of all classes that are associated with that Package, and also displays classes that are in other Packages, but have extension methods that are in that Package.
<p>
When the Projects Browser displays a Class, it displays a list of all methods that are defined for that class, including methods that are in the selected Package and methods that are defined in other Packages.
<ul>
<li>A class is in normal font and a method in normal font indicate that the Class and method is defined in the selected Package or Packages.
</li>
<li>If the class is in normal and the method is in <span class="purpleunderlinefont">purple and underlined </span>, it indicates that the method is defined in a different package; the other package contains an extension method to the selected class. <br><br> Use the method pop up menu item Go To Defining Package to see the Package for that method.</li>
<div class="imageHolder">
<span class="imagelabel"> Class that is not defined in the selected Package</span><br>
<img src="MethodDecorations.jpg" alt="Method Decorations Example" style="width:850px;height:320px;margin:3px">
</div>
<li>A class in <span class="purplefont">purple</span> indicates that the class definition is associated with a different package; the class is included in the list of classes since it has one or more extension methods that are defined in this package. Use the pop up menu item Go To Defining Package to see the Package for that class.
<br><br>
In the example, the selected package holds only extension methods, so all classes in the example are purple (selecting a class masks the purple font, for readability).
</li>
<li>If the class is in <span class="purplefont">purple</span> and the method is in normal font, it indicates that the method is defined in the same package as the class, and that neither the class nor the definition are in the selected package. The Class and Method pane pop up menu item Go To Defining Package will show the Package for that class/method.
<br> <br>
In the example, methods such as <code>asDefinition </code> are in normal font, indicating that they are defined in the same package as its class.
The class <code>RwDefinition</code> and the method <code>asDefinition </code> are both defined in the package named <code>Rowan-Definitions</code>, while <code>Rowan-Core-Definitions-Extensions</code> is the selected package.
</li>
<li>If the class is in <span class="purplefont">purple</span> and the method is in <span class="purplefont">purple (not underlined)</span>, it indicates that the method is defined in the selected package; that is, this is an extension method in the selected package.
<br> <br>
The method <span class="purplefont">comparePropertiesAgainstBase:</span> is defined in the package <code>Rowan-Core-Definitions-Extensions</code>, which is the selected package, but not the package that its class is defined in.
</li>
<li>If the class is in <span class="purplefont">purple</span> and the method is in <span class="purpleunderlinefont">purple and underlined </span>, it indicates that the method is defined in a third package, neither the selected package nor the package that the class is defined on. Use the method pop up menu item Go To Defining Package to see the Package for that method.
<br><br>
The method <span class="purpleunderlinefont">diffSton:</span> is defined in another package, <code>Rowan-Core-Definitions-Extensions-37</code>; neither the selected package, nor its class's package.
</li>
</ul>
<hr>
<h2><a name="FontSizing"></a>Setting Font Sizes
</h2>
To set the System Font, which controls pane labels, menus, tabs, and the display of class and method names, set a preference in Jadeite.prefs. You can use the Console menu item Edit Preferences File to set a font size. Legal values are an integer or nil for default font size.
<p>
For example, to set the font size to 11 (slightly larger than the default)
<pre>
fontSize: 11
</pre>
You will need to logout and login to see the change.
<p>
To set the Text Font for method bodies, workspaces, and similar text panes, you can also use the preferences file.
<pre>
textFontSize: 11
</pre>
You will need to logout and login to see the change.
<p>
You may also set this at runtime using the Projects Browser menu Preferences > Text Font Size.
<hr>
<h2><a name="PackagingConvention"></a>Project Packaging Conventions
</h2>
<br><br>
A feature of rowan is that a Package can contain methods that belong to classes that are in a different package. These are called extension methods. These methods show up in
<span class="purplefont">purple</span> in the Project Browser (see <a href="#BrowserCodeDecoration">Browser code status decoration</a>).
The way the programmer defines that a method should be part of a particular package varies; the rules are based on the Project's packaging convention.
<p>
To see the packaging convention for a project, see the Project Browser Project tab.
<br>
Options are:
<dl>
<dt><b>Monticello</b></dt>
<dd> A leading asterisk in the method or class category indicates the package for the method. For example, a method category <code>*myproject-tests</code> means that all methods in that category
belong to a package named <code>MyProject-Tests</code>. While Rowan and GemStone code often use lowercase package names, the category is case-insenstive. This convention is widely used within the Pharo community.
<br>
Other feature of Monticello convention is that a trailing -<em>aString</em> could be included, to provide a non-package related categorization. For example <code>*myproject-tests-setup</code> and <code>*myproject-tests-behavior</code> would both be packaged in the package named <code>MyProject-Tests</code>, although the method categories are distinct.
<br>
A problem associated with Monticello convention is the ambiguous case in which the -<em>aString</em> is ambigous; for example, if the packages <code>MyProject-Tests</code> and <code>MyProject</code> both exist.
<br><br>
</dd>
<dt><b>RowanHybrid</b></dt>
<dd> The RowanHybrid is a modified version of the Monticello convention. A leading asterisks in the method or class category indicates the package for the method; however, the a trailing -<em>aString</em> is not allowed. This avoids the ambiguity of the Monticello convention.
<br><br>
</dd>
<dt><b>Rowan</b></dt>
<dd> With the Rowan convention, package association is not controlled by category name; the underlying definition contains packaging information, and Jadeite tools allow you to move methods from package to package.
</dd>
</div>
</body>
</html>