2334
|
1 Changes in version 0.8 |
|
2 ********************** |
|
3 |
|
4 * Comment types. |
|
5 |
|
6 Octave mode can now distinguish between various types of comments, |
|
7 similar to Emacs Lisp: |
|
8 |
|
9 `#' To be aligned to the same column on the right of the source |
|
10 code. |
|
11 |
|
12 `##' To be aligned to the same level of indentation as the code. |
|
13 |
|
14 `###' To start at the left margin. |
|
15 |
|
16 (Without this distinction, things like |
|
17 |
|
18 code # This is an inline comment which extends |
|
19 # across on line |
|
20 |
|
21 were not uniquely identifiable, because the second line of the in-line |
|
22 comment could not be distinguished from a full-line comment.) |
|
23 |
|
24 * Inferior Octave support. |
|
25 |
|
26 It is now possible to run Octave from within Emacs, either by directly |
|
27 entering commands at the prompt in a buffer in Inferior Octave mode, or |
|
28 by interacting with Octave from within a file with Octave code. This is |
|
29 useful in particular for debugging Octave code. |
|
30 |
|
31 For more details, see the Texinfo documentation. |
|
32 |
|
33 * New function `octave-insert-defun' to reduce typing effort. |
|
34 |
|
35 |
|
36 Changes in version 0.7 |
|
37 ********************** |
|
38 |
|
39 This version is a rather complete rewrite of 0.6. |
|
40 |
|
41 In general, it was attempted to use standard Emacs features and |
|
42 functions as much as possible. |
|
43 |
|
44 * Font Lock support was improved and enhanced. |
|
45 |
|
46 Function declarations are now fontified correctly. Builtin keywords |
|
47 (reserved words and text functions) and variables are now fontified as |
|
48 well. |
|
49 |
|
50 * Partial Imenu support was added. |
|
51 |
|
52 Function declarations can now be indexed. |
|
53 |
|
54 * A completion mechanism for builtin keywords and variables was added. |
|
55 |
|
56 Completion can be performed by pressing M-TAB (octave-complete-symbol) |
|
57 after typing the initial characters of the keyword. |
|
58 |
|
59 In a future release, completion (as well as imenu and font locking) may |
|
60 also include user defined variables. |
|
61 |
|
62 * Bug reporting. |
|
63 |
|
64 The function octave-submit-bug-report was added. |
|
65 |
|
66 * Commands for dealing with blocks. |
|
67 |
|
68 The functions for dealing with begin-else-end blocks were rewritten from |
|
69 scratch. They are now based on the function octave-scan-blocks, which |
|
70 works similar to the standard Emacs scan-lists function. One can now go |
|
71 forward and backward across balanced blocks, and go up and down block |
|
72 levels. It is no longer required that extended `end' keywords are used; |
|
73 in fact, an error message will be issued in the case of nonmatching |
|
74 block keywords. Matching is achieved through one general function, and |
|
75 now also works for else keywords. |
|
76 |
|
77 The block motion commands are |
|
78 |
|
79 octave-forward-block |
|
80 octave-backward-block |
|
81 octave-down-block |
|
82 octave-up-block |
|
83 octave-backward-up-block |
|
84 |
|
85 One can also mark the `current' block (the innermost block containing |
|
86 point) using octave-mark-block. |
|
87 |
|
88 * Commands for dealing with functions. |
|
89 |
|
90 Moving across functions, as well as marking and indenting them now works |
|
91 as for defuns in Lisp mode. |
|
92 |
|
93 * Filling. |
|
94 |
|
95 The code for auto-filling was rewritten, and octave-fill-paragraph was |
|
96 added. The code for filling is far from perfection yet. In future |
|
97 releases, a function for filling the region will be added. |
|
98 |
|
99 The problem of getting the right fill function after toggling Auto-Fill |
|
100 mode was solved by an advice to auto-fill-mode. |
|
101 |
|
102 * Abbrevs. |
|
103 |
|
104 The mechanism of listing all abbrevs using `? or ` was retained. All |
|
105 other abbrev code was dropped---why should Octave mode only use its own |
|
106 abbrevs? |
|
107 |
|
108 * Comments. |
|
109 |
|
110 As the comment syntax and comment-start are specified correctly, one can |
|
111 use the standard comment-region. The function octave-uncomment-region |
|
112 is still provided, but now based on comment-region. |
|
113 |
|
114 The special treatment of commenting regions was removed, but may easily |
|
115 be added again. |
|
116 |
|
117 * Paragraphs. |
|
118 |
|
119 Empty lines and form feeds are now recognized as separating paragraphs |
|
120 of Octave code, so one can now move across them and fill them. |
|
121 |
|
122 * Indentation. |
|
123 |
|
124 Indentation should work without problems now, assuming `sane' coding. |
|
125 The problems in 0.6 which came from assuming that only one else or end |
|
126 keyword would occur in one line should now have disappeared. |
|
127 |
|
128 The user-level variables for customizing indentation were renamed as |
|
129 follows: |
|
130 |
|
131 0.7 0.6 |
|
132 |
|
133 octave-block-offset octave-stmt-indent |
|
134 octave-continuation-offset octave-continuation-indent |
|
135 |
|
136 Of course, it is still easy to write code in a way that makes Octave |
|
137 mode get the indentations wrong. For example, |
|
138 |
|
139 if (something) \ |
|
140 |
|
141 will result in having octave-continuation-offset added although this is |
|
142 wrong. Or, |
|
143 |
|
144 printf ("This is some stupid %s \ |
|
145 for getting indentation wrong.", |
|
146 "text") |
|
147 |
|
148 is what you deserve anyway :-) Octave mode currently assumes that |
|
149 strings do not extend across lines ... |
|
150 |
|
151 * Other commands for moving. |
|
152 |
|
153 The functions octave-previous-statement and octave-next-statement were |
|
154 removed, partially because their names do not coincide with the usage of |
|
155 `statement' in the Octave manual. The functions now provided are |
|
156 |
|
157 octave-previous-code-line |
|
158 octave-next-code-line |
|
159 octave-beginning-of-line |
|
160 octave-end-of-line |
|
161 |
|
162 The first two look for the previous or next `code' line, i.e., they skip |
|
163 across all empty or comment lines. The latter two also go understand |
|
164 continuation lines, and move to their beginning and end, respectively. |
|
165 |
|
166 The effect of the former octave-previous-statement can now be achieved |
|
167 upon following octave-previous-code-line by octave-beginning-of-line. |
|
168 |
|
169 * Special insertions: LFD, SPC and semicolon. |
|
170 |
|
171 These characters are now `electric', doing a little extra work. All |
|
172 three expand abbrevs if abbrev mode is on and blink matching blocks if |
|
173 octave-blink-matching-blocks is t. |
|
174 |
|
175 In future versions, SPC might also do auto-newlining after certain |
|
176 keywords (or e.g., a continuation character). |
|
177 |
|
178 * User-level customization. |
|
179 |
|
180 The variables for customizing Octave mode are as follows. |
|
181 |
|
182 ** As in 0.6. |
|
183 |
|
184 octave-auto-newline |
|
185 octave-comment-column |
|
186 octave-comment-start |
|
187 octave-continuation-string |
|
188 |
|
189 ** Different from 0.6. |
|
190 |
|
191 0.7 0.6 |
|
192 |
|
193 octave-blink-matching-block octave-blink-matching-blocks |
|
194 octave-block-offset octave-statement-indent |
|
195 octave-continuation-offset octave-continuation-indent |
|
196 octave-inhibit-startup-message octave-startup-message |
|
197 |
|
198 The first three have only been renamed. (The first in analogy to the |
|
199 standard blink-matching-paren, the others because they are really extra |
|
200 offsets and not the absolute indentations.) |
|
201 |
|
202 Controlling startup messages now works as in Emacs itself. |
|
203 |
|
204 ** New in 0.7. |
|
205 |
|
206 octave-fill-column |
|
207 |
|
208 ** Removed from 0.7. |
|
209 |
|
210 octave-comment-indent-style |
|
211 octave-comment-indent-char |
|
212 octave-comment-region |
|
213 |
|
214 * Help |
|
215 |
|
216 A mechanism for looking up entries in the indices of ALL info files with |
|
217 documentation for Octave (as specified by octave-help-files) was added |
|
218 (octave-help). If multiple matches are found, one can cycle through the |
|
219 matches. |
|
220 |
|
221 * Other changes. |
|
222 |
|
223 octave-comment-hook was removed. One can instead use the standard Emacs |
|
224 indent-for-comment. |
|
225 |