]>
Commit | Line | Data |
---|---|---|
02b800ce RD |
1 | 0.9.5 (12/23/2005) |
2 | ------------------- | |
3 | ||
4 | Applied a series of enhancments by Franz Steinaeusler, Adi Sieker, and | |
5 | Sebastian Haase, up until their 7-31-2005 version. (Their next | |
6 | version broke some existing functionality, and added some confusing | |
7 | hacks, and I didn't feel that the incremental gains were worth the | |
8 | loss at that point so I stopped at 7-31-2005.) | |
9 | ||
10 | Their changes include the following: | |
11 | ||
12 | * The Autocomplete and Calltip windows can now be opened manually with | |
13 | Ctrl-Space and Ctrl-Shift-Space. | |
14 | ||
15 | * In the stand alone PyCrust app the various option settings, window | |
16 | size and position, and etc. are saved and restored at the next run. | |
17 | ||
18 | * Added a help dialog bound to the F1 key that shows the key bindings. | |
19 | ||
20 | * Added a new text completion function that suggests words from the | |
21 | history. Bound to Shift-Return. | |
22 | ||
23 | * F11 will toggle the maximized state of the frame. | |
24 | ||
25 | * switched to Bind() from wx.EVT_*(). | |
26 | ||
27 | * Display of line numbers can be toggled. | |
28 | ||
29 | * F12 toggles a "free edit" mode of the shell buffer. This mode is | |
30 | useful, for example, if you would like to remove some output or | |
31 | errors or etc. from the buffer before doing a copy/paste. The free | |
32 | edit mode is designated by the use of a red, non-flashing caret. | |
33 | ||
486afba9 | 34 | * Ctrl-Shift-F will fold/unfold (hide/show) the selected lines. |
02b800ce RD |
35 | |
36 | ||
37 | ||
38 | On top of these changes I (Robin Dunn) added the following: | |
39 | ||
40 | * General code cleanup and fixes. | |
41 | ||
42 | * Use wx.StandardPaths to determine the location of the config files. | |
43 | ||
44 | * Remove Orbtech attributions from the UI, they've been there long | |
45 | enough. | |
46 | ||
47 | * Use wx.SP_LIVE_UPDATE on crust and filling windows. | |
48 | ||
49 | * Extended the saving of the config info and other new features to the | |
50 | PyShell app too. Additionally, other apps that embed a PyCrust or a | |
51 | PyShell can pass their own wx.Config object and have the Py code | |
52 | save/restore its settings to/from there. | |
53 | ||
54 | * All of the classes with config info get an opportunity to save/load | |
55 | their own settings instead of putting all the save/load code in one | |
56 | place that then has to reach all over the place to do anything. | |
57 | ||
58 | * Enable editing of the startup python code, which will either be the | |
59 | file pointed to by PYTHONSTARTUP or a file in the config dir if | |
60 | PYTHONSTARTUP is not set in the environment. | |
61 | ||
62 | * Added an option to skip the running of the startup code when | |
63 | PyShell or PyCrust starts. | |
64 | ||
65 | * PyCrust adds a pp(item) function to the shell's namespace that | |
66 | pretty prints the item in the Display tab of the notebook. Added | |
67 | code to raise that tab when pp() is called. | |
68 | ||
69 | * Added an option for whether to insert text for function parameters | |
70 | when popping up the call tip. | |
71 | ||
72 | * Added Find and Find-Next functions that use the wx.FindReplaceDialog. | |
73 | ||
74 | ||
75 | ||
76 | ||
77 | ||
78 | ||
e757654c PB |
79 | 0.9.4 (1/25/2004 to //2004) |
80 | ------------------------------ | |
1fded56b | 81 | |
e757654c PB |
82 | Removed wxd decorators in favor of new SWIG-generated docstrings. |
83 | ||
84 | Removed docs tabs from crust interface: | |
85 | * wxPython Docs | |
86 | * wxSTC Docs | |
87 | ||
07b87e8d PB |
88 | Fixed Calltip tab refresh problem on Windows. |
89 | ||
f65958cc | 90 | shell.autoCompleteAutoHide added with default of False. |
d351525a | 91 | |
a47c63ba PB |
92 | Changed default namespace of Shell to __main__.__dict__, instead of an |
93 | empty dictionary. | |
94 | ||
e757654c PB |
95 | |
96 | 0.9.3 (9/25/2003 to 1/24/2004) | |
97 | ------------------------------ | |
98 | ||
99 | Fun and games with dynamic renaming. Details of any other changes | |
100 | were lost in the confusion. I'll try to do better in the future. | |
101 | ||
102 | ||
103 | 0.9.2 (5/3/2003 to 9/25/2003) | |
1fded56b RD |
104 | ----------------------------- |
105 | ||
106 | Changed to the new prefix-less "wx" package:: | |
107 | ||
108 | import wx | |
109 | ||
110 | instead of:: | |
111 | ||
112 | from wxPython import wx | |
113 | ||
114 | Fixed typo in ``PyWrap.py``:: | |
115 | ||
116 | if __name__ == '__main__': | |
117 | main(sys.argv) | |
118 | ||
119 | should have been:: | |
120 | ||
121 | if __name__ == '__main__': | |
122 | main() | |
123 | ||
124 | Added pretty-print Display tab to Crust, based on suggestion from | |
125 | Jason Whitlark. | |
126 | ||
127 | Improved ``Can*`` checks in ``EditWindow``, since STC is too lenient, | |
128 | particularly when it is set to read-only but returns True for | |
129 | CanPaste() (seems like an STC bug to me):: | |
130 | ||
131 | def CanCopy(self): | |
132 | """Return True if text is selected and can be copied.""" | |
133 | return self.GetSelectionStart() != self.GetSelectionEnd() | |
134 | ||
135 | def CanCut(self): | |
136 | """Return True if text is selected and can be cut.""" | |
137 | return self.CanCopy() and self.CanEdit() | |
138 | ||
139 | def CanEdit(self): | |
140 | """Return True if editing should succeed.""" | |
141 | return not self.GetReadOnly() | |
142 | ||
143 | def CanPaste(self): | |
144 | """Return True if pasting should succeed.""" | |
145 | return stc.StyledTextCtrl.CanPaste(self) and self.CanEdit() | |
146 | ||
147 | ||
148 | 0.9.1 (3/21/2003 to 5/2/2003) | |
149 | ----------------------------- | |
150 | ||
151 | PyCrust is dead! Long live Py! | |
152 | ||
153 | * Renamed ``PyCrust`` package to ``py``. | |
154 | * Moved code to wxPython's CVS repository. | |
155 | ||
156 | Fixed bug in ``introspect.py`` on introspecting objects occurring | |
157 | immediately after a secondary prompt, like this:: | |
158 | ||
159 | >>> l = [1, 2, 3] | |
160 | >>> for n in range(3): | |
161 | ... l. <-- failed to popup autocomplete list | |
162 | ||
163 | Added documentation files: | |
164 | ||
165 | * PyManual.txt | |
166 | * wxPythonManual.txt | |
167 | * wxPythonPackage.txt | |
168 | * wxPythonExamples.txt | |
169 | ||
170 | Added PyAlaMode and PyAlaCarte code editors. | |
171 | ||
172 | Major refactoring to support ``editor`` and ``shell`` from the same | |
173 | base. | |
174 | ||
175 | Renamed program files: | |
176 | ||
177 | * ``PyCrustApp.py`` to ``PyCrust.py`` | |
178 | * ``PyFillingApp.py`` to ``PyFilling.py`` | |
179 | * ``PyShellApp.py`` to ``PyShell.py`` | |
180 | * ``wrap.py`` to ``PyWrap.py`` | |
181 | ||
182 | Removed disabling of autocomplete for lists of 2000 items or more. | |
183 | The current implementation of wxSTC can now handle lists this big. | |
184 | ||
185 | Improved handling of ``sys.path`` to mimic the standard Python shell. | |
186 | ||
187 | ||
188 | 0.9 (2/27/2003 to 3/20/2003) | |
189 | ---------------------------- | |
190 | ||
191 | Added fontIncrease, fontDecrease, fontDefault signals, receivers and | |
192 | keybindings:: | |
193 | ||
194 | Ctrl+] Increase font size. | |
195 | Ctrl+[ Decrease font size. | |
196 | Ctrl+= Default font size. | |
197 | ||
198 | Continued enhancement of the decorator capability to provide better | |
199 | documentation and docstrings for wxPython classes and functions. | |
200 | ||
201 | Introduced new tabbed interface: | |
202 | ||
203 | * Namespace | |
204 | * Calltip | |
205 | * Session | |
206 | * Dispatcher | |
207 | * wxPython Docs | |
208 | * wxSTC Docs | |
209 | ||
210 | ``Filling.tree`` now expands tuples as well as lists. (It should have | |
211 | done this all along, I just never noticed this omission before.) | |
212 | ||
213 | Added this True/False test to all modules:: | |
214 | ||
215 | try: | |
216 | True | |
217 | except NameError: | |
218 | True = 1==1 | |
219 | False = 1==0 | |
220 | ||
221 | Added ``wxd`` directory with decoration classes. | |
222 | ||
223 | ||
224 | 0.8.2 (1/5/2003 to 2/26/2003) | |
225 | ----------------------------- | |
226 | ||
227 | Wrapped ``sys.ps1``, ``sys.ps2``, and ``sys.ps3`` in ``str()``. | |
228 | (Thanks, Kieran Holland.) | |
229 | ||
230 | Fixed minor things found by PyChecker. | |
231 | ||
232 | Changed locals to use ``__main__.__dict__`` and added code to clean up | |
233 | the namespace, making it as close to the regular Python environment as | |
234 | possible. This solves the problem of pickling and unpickling | |
235 | instances of classes defined in the shell. | |
236 | ||
237 | Made ``shell.PasteAndRun()`` a little more forgiving when it finds a | |
238 | ps2 prompt line with no trailing space, such when you copy code from a | |
239 | web page. | |
240 | ||
241 | Improved autocomplete behavior by adding these to shell:: | |
242 | ||
243 | self.AutoCompSetAutoHide(False) | |
244 | self.AutoCompStops(' .,;:([)]}\'"\\<>%^&+-=*/|`') | |
245 | ||
246 | Added ``decor`` directory, ``decorator.py``, ``stcDecor.py``, and | |
247 | ``stcConstants.py``. These all serve the purpose of adding docstrings | |
248 | to existing wxPython classes, in particular the ``wxStyledTextCtrl``. | |
249 | ||
250 | Added ``wrap.py``, a command line utility for running a wxPython app | |
251 | with additional runtime-tools loaded, such as PyCrust (the only tool | |
252 | at this point). | |
253 | ||
254 | Flushed the clipboard Cut/Copy operations so that selections will | |
255 | exist in the clipboard even after PyCrust has been closed. | |
256 | ||
257 | Improved the suppression of docstrings for simple data types appearing | |
258 | in the namespace viewer. | |
259 | ||
260 | Better handling of autocompletion with numeric types; no | |
261 | autocompletion when typing a dot after an integer. If the | |
262 | autocompletion is desired, type a space before the dot:: | |
263 | ||
264 | func = 3 . | |
265 | ||
266 | More Filling!!! The namespace tree is now dynamically updated. | |
267 | ||
268 | ||
269 | 0.8.1 (12/20/2002 to 12/25/2002) | |
270 | -------------------------------- | |
271 | ||
272 | Improved keyboard handling with Autocomplete active. You can now use | |
273 | Enter as well as Tab to select an item from the list. | |
274 | ||
275 | Disabled autocomplete for lists of 2000 items or more. The current | |
276 | implementation of wxSTC can't handle lists this big. | |
277 | ||
278 | Changed ``filling`` to always display docstrings for objects. This is | |
279 | useful for objects whose docstrings have been decorated, rather than | |
280 | coming directly from the source code. (Hmmm. Sounds like someone is | |
281 | doing some decorating. I wonder where that would be helpful? <wink>) | |
282 | ||
283 | Fixed handling of icon. Added ``images.py`` file. | |
284 | ||
285 | ||
286 | 0.8 (10/29/2002 to 12/16/2002) | |
287 | ------------------------------ | |
288 | ||
289 | Added "help" to startup banner info. | |
290 | ||
291 | Made all ``wx`` and ``stc`` imports explicit. No more ``import *``. | |
292 | ||
293 | Replaced use of the ``wx`` module's ``true`` and ``false`` with | |
294 | Python's ``True`` and ``False``. | |
295 | ||
296 | Changed ``introspect.getRoot()`` to use ``tokenize`` module. This | |
297 | does a slightly better job than the previous parsing routine and the | |
298 | code is clearer. | |
299 | ||
300 | Improved handling of whitespace and empty types during introspection. | |
301 | ||
302 | Fixed cut/copy clipboard problem under Linux. (Robin Dunn rocks!!!) | |
303 | ||
304 | Added shell.about() which works like this:: | |
305 | ||
306 | >>> shell.about() | |
307 | PyCrust Version: 0.8 | |
308 | Shell Revision: 1.80 | |
309 | Interpreter Revision: 1.15 | |
310 | Python Version: 2.2.2 | |
311 | wxPython Version: 2.3.3.1 | |
312 | Platform: linux2 | |
313 | ||
314 | Added copy plus and paste plus to shell menu. | |
315 | ||
316 | Moved shell menu from ``shell.py`` to ``shellmenu.py``. | |
317 | ||
318 | Added ``sys.stdin.readlines()`` support. | |
319 | ||
320 | Added ``time.sleep()`` in ``readline()`` and ``OnIdle()`` event | |
321 | handler to free up the CPU. | |
322 | ||
323 | ||
324 | 0.7.2 (2/22/2002 to 8/27/2002) | |
325 | ------------------------------ | |
326 | ||
327 | Tweaked ``getAttributeNames()`` to pick up a few more attributes:: | |
328 | ||
329 | '__bases__', '__class__', '__dict__', '__name__', 'func_closure', | |
330 | 'func_code', 'func_defaults', 'func_dict', 'func_doc', | |
331 | 'func_globals', 'func_name' | |
332 | ||
333 | Added a tests directory and unit tests. | |
334 | ||
335 | Improved support for empty types in the shell: ``[]``, ``()`` and | |
336 | ``{}`` as far as when call tips and autocompletion are available. | |
337 | ||
338 | Added support for the other triple string - ``''''''``. | |
339 | ||
340 | Refactored ``introspect.py`` to improve testability. | |
341 | ||
342 | Improved call tips for unbound methods by leaving the "self" | |
343 | parameter, since unbound methods require an instance be passed. | |
344 | ||
345 | Fixed call tip bug where a tip was displayed when a "(" was typed | |
346 | after an object that wasn't callable. | |
347 | ||
348 | Fixed ``getAllAttributeNames`` when ``str(object)`` fails. | |
349 | ||
350 | Added brace highlighting. (Thank you, Kevin Altis.) | |
351 | ||
352 | Fixed problem displaying unicode objects in ``PyFilling``. | |
353 | ||
354 | Changed how ``filling.py`` checks for expandable objects. Lists are | |
355 | now expandable objects. | |
356 | ||
357 | Made the key handling more robust when there is an active text | |
358 | selection that includes text prior to the last primary prompt. Thanks | |
359 | to Raul Cota for pointing this out. | |
360 | ||
361 | Fixed wxSTC problem with brace highlighting and non-us keyboards. | |
362 | (Thank you for the patch, Jean-Michel Fauth.) | |
363 | ||
364 | Added ``busy = wxBusyCursor()`` to key points in ``shell`` and | |
365 | ``filling``. | |
366 | ||
367 | Added ``OnCloseWindow`` handler to ``ShellFrame`` and ``CrustFrame``. | |
368 | ||
369 | Default to ``SetWrapMode(1)`` for shell and namespace viewer. | |
370 | ||
371 | Added ``shell.wrap()`` and ``shell.zoom()``. | |
372 | ||
373 | Added autoCompleteKeys hooks for Raul Cota. | |
374 | ||
375 | Cleaned up various little key handling bugs. | |
376 | ||
377 | Changed input methods to get values from shell, rather than dialog | |
378 | boxes. Renamed ``readIn`` to ``readline`` and ``readRaw`` to | |
379 | ``raw_input``. | |
380 | ||
381 | ||
382 | 0.7.1 (12/12/2001 to 2/21/2002) | |
383 | ------------------------------- | |
384 | ||
385 | Fixed ``OnChar()`` issues effecting European keyboards, as reported by | |
386 | Jean-Michel Fauth. | |
387 | ||
388 | Fixed ``introspect.py`` issue with xmlrpc objects reported by Kevin | |
389 | Altis. | |
390 | ||
391 | Fixed some introspect/PyFilling issues with regard to Python 2.2. | |
392 | ||
393 | Fixed font background color as reported by Keith J. Farmer. (Thanks) | |
394 | ||
395 | Fixed problem with call tips and autocompletion inside multiline | |
396 | commands as report by Kevin Altis. | |
397 | ||
398 | Improved ``OnKeyDown`` handling of cut/copy/paste operations based on | |
399 | feedback from Syver Enstad. (Thanks) | |
400 | ||
401 | Added a ``shell.help()`` method to display some help info. | |
402 | ||
403 | Changed sort of items in the namespace viewer to case insensitive. | |
404 | ||
405 | Changed ``attributes.sort(lambda x, y: cmp(x.upper(), y.upper()))`` in | |
406 | advance of an upcoming fix to an autocompletion matching bug in wxSTC. | |
407 | ||
408 | Improved support for ZODB by allowing namespace drilldown into BTrees. | |
409 | ||
410 | Added ``shell.PasteAndRun()`` to support pasting multiple commands into | |
411 | the shell from the clipboard. Ctrl+Shift+V or v. | |
412 | ||
413 | Enter now always processes a command (or copies down a previous one.) | |
414 | To insert a line break, press Ctrl+Enter. | |
415 | ||
416 | Escape key clears the current, unexecuted command. | |
417 | ||
418 | History retrieval changed to replace current command. Added new keys | |
419 | to insert from history - Shift+Up and Shift+Down. | |
420 | ||
421 | Better call tips on objects with ``__call__`` methods. | |
422 | ||
423 | Improved call tip positioning calculation. | |
424 | ||
425 | ||
426 | 0.7 (10/15/2001 to 12/11/2001) | |
427 | ------------------------------ | |
428 | ||
429 | Changed how command history retrieval functions work. Added Alt-P, | |
430 | Alt-N as keybindings for Retrieve-Previous, Retrieve-Next. | |
431 | ||
432 | Added full support for multi-line commands, similar to IDLE. | |
433 | ||
434 | Changed ``introspect.getAttributeNames()`` to do a case insensitive | |
435 | sort. | |
436 | ||
437 | Changed Cut/Copy/Paste to deal with prompts intelligently. Cut and | |
438 | Copy remove all prompts. Paste can handle prompted or not-prompted | |
439 | text. | |
440 | ||
441 | Added ``CopyWithPrompts()`` method attached to Ctrl-Shift-C for those | |
442 | times when you really do want all the prompts left intact. | |
443 | ||
444 | Improved handling of the shell's read-only zone. | |
445 | ||
446 | Changed ``CrustFrame.__init__`` parameter spec to include all | |
447 | parameters allowed by a ``wxFrame``. | |
448 | ||
449 | Changed ``FillingText`` to be read-only. | |
450 | ||
451 | Renamed ``PyCrust.py`` to ``PyCrustApp.py`` to eliminate | |
452 | package/module name conflicts that kept you from doing ``from PyCrust | |
453 | import shell`` inside files located in the ``PyCrust`` directory. | |
454 | ||
455 | Renamed ``PyFilling.py`` to ``PyFillingApp.py`` and ``PyShell.py`` to | |
456 | ``PyShellApp.py`` to maintain consistency. | |
457 | ||
458 | Removed the ``__date__`` property from all modules. | |
459 | ||
460 | Fixed bug in ``introspect.getCallTip()``, reported by Kevin Altis. | |
461 | ||
462 | ||
463 | 0.6.1 (9/19/2001 to 10/12/2001) | |
464 | ------------------------------- | |
465 | ||
466 | Changed ``Shell.run()`` to always position to the end of existing | |
467 | text, as suggested by Raul Cota. | |
468 | ||
469 | Changed ``introspect.getAllAttributeNames()`` to break circular | |
470 | references in ``object.__class__``, which occurs in Zope/ZODB | |
471 | extension classes. | |
472 | ||
473 | Changed ``filling.FillingTree.getChildren()`` to introspect extension | |
474 | classes. | |
475 | ||
476 | Fixed minor bugs in ``introspect.getCallTip()`` that were interfering | |
477 | with call tips for Zope/ZODB extension class methods. | |
478 | ||
479 | In preparation for wxPython 2.3.2, added code to fix a font sizing | |
480 | problem. Versions of wxPython prior to 2.3.2 had a sizing bug on Win | |
481 | platform where the font was 2 points larger than what was specified. | |
482 | ||
483 | Added a hack to ``introspect.getAllAttributeNames()`` to "wake up" | |
484 | ZODB objects that are asleep - in a "ghost" state. Otherwise it | |
485 | returns incomplete info. | |
486 | ||
487 | ||
488 | 0.6 (8/21/2001 to 9/12/2001) | |
489 | ---------------------------- | |
490 | ||
491 | Added ``PyFilling.py`` and ``filling.py``. | |
492 | ||
493 | ``PyShell.py`` and ``PyFilling.py`` can now be run standalone, as well | |
494 | as ``PyCrust.py``. | |
495 | ||
496 | Added ``crust.py`` and moved some code from ``PyCrust.py`` to it. | |
497 | ||
498 | Added command history retrieval features submitted by Richie Hindle. | |
499 | ||
500 | Changed ``shell.write()`` to replace line endings with OS-specific | |
501 | endings. Changed ``shell.py`` and ``interpreter.py`` to use | |
502 | ``os.linesep`` in strings having hardcoded line endings. | |
503 | ||
504 | Added ``shell.redirectStdin()``, ``shell.redirectStdout()`` and | |
505 | ``shell.redirectStderr()`` to allow the surrounding app to toggle | |
506 | requests that the specified ``sys.std*`` be redirected to the shell. | |
507 | These can also be run from within the shell itself, of course. | |
508 | ||
509 | The shell now adds the current working directory "." to the search | |
510 | path:: | |
511 | ||
512 | sys.path.insert(0, os.curdir) | |
513 | ||
514 | Added support for distutils installations. | |
515 | ||
516 | ||
517 | 0.5.4 (8/17/2001 to 8/20/2001) | |
518 | ------------------------------ | |
519 | ||
520 | Changed default font size under Linux to:: | |
521 | ||
522 | 'size' : 12, | |
523 | 'lnsize' : 10, | |
524 | ||
525 | Changed ``Shell`` to expect a parameter referencing an Interpreter | |
526 | class, rather than an intepreter instance, to facilitate subclassing | |
527 | of Interpreter, which effectively broke when the Editor class was | |
528 | eliminated. | |
529 | ||
530 | Fixed ``PyCrustAlaCarte.py``, which had been broken by previous | |
531 | changes. | |
532 | ||
533 | Created ``InterpreterAlaCarte`` class as an example for use in the | |
534 | demo. | |
535 | ||
536 | Split ``PyCrust.py`` into ``PyCrust.py`` and ``PyShell.py`` in | |
537 | anticipation of ``PyFilling.py``. | |
538 | ||
539 | ||
540 | 0.5.3 (8/16/2001) | |
541 | ----------------- | |
542 | ||
543 | Added patch to ``PyCrust.py`` to fix wxPython bug:: | |
544 | ||
545 | wxID_SELECTALL = NewId() # This *should* be defined by wxPython. | |
546 | ||
547 | ||
548 | 0.5.2 (8/14/2001 to 8/15/2001) | |
549 | ------------------------------ | |
550 | ||
551 | Shortened module names by dropping "PyCrust" as a prefix. | |
552 | ||
553 | Changed ``version`` to ``VERSION`` in ``version`` module. | |
554 | ||
555 | Added Options menu to PyCrust application. | |
556 | ||
557 | Eliminated the Editor class (and editor module) by merging with Shell. | |
558 | This means that Shell "is a" wxStyledTextCtrl rather than "has a". | |
559 | There just wasn't enough non-gui code to justify the separation. | |
560 | Plus, Shell will be much easier for gui toolkits/designers to deal | |
561 | with now. | |
562 | ||
563 | ||
564 | 0.5.1 (8/10/2001 to 8/14/2001) | |
565 | ------------------------------ | |
566 | ||
567 | Added ``introspect`` module. | |
568 | ||
569 | Moved some functionality from ``PyCrustInterp`` to ``introspect``. | |
570 | ||
571 | Changed ``introspect.getRoot()`` to no longer remove whitespace from | |
572 | the command. This was a remnant of a previous approach that, when | |
573 | left as part of the current approach, turned out to be a really bad | |
574 | thing. | |
575 | ||
576 | Changed ``introspect.getRoot()`` to allow commands of ``''``, ``""``, | |
577 | ``""""""``, ``[]``, ``()``, and ``{}`` to pass through. This allows | |
578 | you to type them, followed by a dot, and get autocomplete options on | |
579 | them. | |
580 | ||
581 | Changed ``introspect.getRoot()`` to identify some situations where | |
582 | strings shouldn't be considered roots. For example:: | |
583 | ||
584 | >>> import PyCrust # To illustrate the potential problem. | |
585 | >>> len('PyCrust.py') | |
586 | ||
587 | Typing the dot at the end of "PyCrust" in the second line above should | |
588 | NOT result in an autocompletion list because "PyCrust" is part of a | |
589 | string in this context, not a reference to the PyCrust module object. | |
590 | Similar reasoning applies to call tips. For example:: | |
591 | ||
592 | >>> len('dir(') | |
593 | ||
594 | Typing the left paren at the end of "dir" should NOT result in a call | |
595 | tip. | |
596 | ||
597 | Both features now behave properly in the examples given. However, | |
598 | there is still the case where whitespace precedes the potential root | |
599 | and that is NOT handled properly. For example:: | |
600 | ||
601 | >>> len('this is a dir(') | |
602 | ||
603 | and:: | |
604 | ||
605 | >>> len('This is PyCrust.py') | |
606 | ||
607 | More code needs to be written to handle more complex situations. | |
608 | ||
609 | Added ``locals=None`` parameter to ``Shell.__init__()``. | |
610 | ||
611 | Added support for magic attribute retrieval. Users can change this | |
612 | with:: | |
613 | ||
614 | >>> shell.editor.autoCompleteIncludeMagic = 0 | |
615 | ||
616 | Added the ability to set filters on auto completion to exclude | |
617 | attributes prefixed with a single or double underscore. Users can | |
618 | exclude one or the other or both with:: | |
619 | ||
620 | >>> shell.editor.autoCompleteExcludeSingle = 1 | |
621 | >>> shell.editor.autoCompleteExcludeDouble = 1 | |
622 | ||
623 | ||
624 | 0.5 (8/8/2001) | |
625 | -------------- | |
626 | ||
627 | Mostly just a final version change before creating a release. | |
628 | ||
629 | ||
630 | 0.4 (8/4/2001 to 8/7/2001) | |
631 | -------------------------- | |
632 | ||
633 | Changed version/revision handling. | |
634 | ||
635 | Fixed bugs. | |
636 | ||
637 | ||
638 | 0.3 (8/2/2001 to 8/3/2001) | |
639 | -------------------------- | |
640 | ||
641 | Removed lots of cruft. | |
642 | ||
643 | Added lots of docstrings. | |
644 | ||
645 | Imported to CVS repository at SourceForge. | |
646 | ||
647 | Added call tips. | |
648 | ||
649 | ||
650 | 0.2 (7/30/2001 to 8/2/2001) | |
651 | --------------------------- | |
652 | ||
653 | Renamed several files. | |
654 | ||
655 | Added command autocompletion. | |
656 | ||
657 | Added menus to PyCrust.py: File, Edit and Help. | |
658 | ||
659 | Added sample applications: ``PyCrustAlaCarte.py``, | |
660 | ``PyCrustAlaMode.py``, and ``PyCrustMinimus.py``. | |
661 | ||
662 | ||
663 | 0.1 (7/1/2001 to 7/19/2001) | |
664 | --------------------------- | |
665 | ||
666 | Added basic syntax coloring much like Boa. | |
667 | ||
668 | Added read-only logging much like IDLE. | |
669 | ||
670 | Can retrieve a previous command by putting the cursor back on that | |
671 | line and hitting enter. | |
672 | ||
673 | Stdin and raw_input operate properly so you can now do ``help()`` and | |
674 | ``license()`` without hanging. | |
675 | ||
676 | Redefined "quit", "exit", and "close" to display a better-than-nothing | |
677 | response. | |
678 | ||
679 | Home key honors the prompt. | |
680 | ||
681 | Created SourceForge account, but nothing was posted. | |
682 | ||
683 | ||
684 | In the beginning, there was pie... (7/1/2001) | |
685 | --------------------------------------------- | |
686 | ||
687 | Blame it all on IDLE, Boa and PythonWin. I was using all three, got | |
688 | frustrated with their dissimilarities, and began to let everyone know | |
689 | how I felt. At the same time, Scintilla looked like an interesting | |
690 | tool to build a shell around. And while I didn't receive much in the | |
691 | way of positive feedback, let alone encouragement, I just couldn't let | |
692 | go of the idea of a Scintilla-based Python shell. Then the PythonCard | |
693 | project got to the point where they were talking about including a | |
694 | shell in their development environment. That was all the incentive I | |
695 | needed. PyCrust had to happen... |