📄 changelog
字号:
2002-03-29 Phil Dawes <pdawes@users.sourceforge.net> * NEWS: consolidated all README-version files into one NEWS file * README*: updated documentation * bike/ui/BicycleRepairMan_Idle.py: Fixed another windows filename isnt normalized bug * bike/ui/bike.el: Added same functionality as for idle * bike/ui/BicycleRepairMan_Idle.py: Added load on save functionality - means each saved python file gets automatically imported into bicyclerepairman.2002-03-27 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/load.py: Added functionality to deduce the package of the loaded module/package by inspecting parent directories for __init__.py modules. This allows adding of new modules to an existing AST.2002-03-24 Phil Dawes <pdawes@users.sourceforge.net> * README.idle: Added Evelyn's ammendment to doc ---------------------- 0.4.2 ------------------------------------2002-03-23 Phil Dawes <pdawes@users.sourceforge.net> * setup.py: Removed Icons stuff from setup * bike/ui/BicycleRepairMan_Idle.py: Fixed some bugs with idle integration in windows: - Ask if should rename dialogs dont take focus (which makes selection disappear in windows) - Filename normalizing means that filenames get compared correctly.2002-03-21 Phil Dawes <pdawes@users.sourceforge.net> * bike/testutils.py: Changed the test package structure generation code to add __init__.py modules to the packages. This will be used to work with the new loader code (when I write it).2002-03-20 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/BicycleRepairMan_Idle.py: Fixed bug which was stopping changed files from being reloaded on windows---------------------- 0.4.1 ------------------------------------2002-03-19 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/BicycleRepairMan_Idle.py: Fixed bug where rename method prompts weren't visible to the user. * bike/parsing/addtypeinfo.py: Fixed a bug which meant that sourcenode wasnt getting added to default arguments, which caused brm to crash when attempting to tokenize these. ---------------------- 0.4 --------------------------------------2002-03-18 Phil Dawes <pdawes@users.sourceforge.net> * setup.py: Removed bikegui and pyxmi from the setup program. These are now deprecated. * bike/ui/BicycleRepairMan_Idle.py: Added the idle support module to cvs. * bike/parsing/tokenhandler.py: Simplified SimpleTokenHandler * bike/parsing/extended_ast.py: Removed ExtendedNode base class - it isnt needed (thanks Evelyn) * bike/parsing/tokenutils.py: fixed bug in _getOffsetOfTokensCorrespondingToParseTree which was including the NL token in the offset it returned. * bike/bikefacade.py: Changed signature of rename method callback. It now sends filename and coords as args rather than exposing the ast nodes to the client.2002-03-07 Phil Dawes <pdawes@users.sourceforge.net> * bike/__init__.py: Moved bikefacade.py (from the ui package) into the bike package. This is now referenced from __init__.py so a client can do: import bike; ctx = bike.load("mypath"); ctx.renameMethod() * bike/parsing/typeinfo.py: ModuleTypeinfo.getTypeOf() functionality now uses the imported module *name* to check other modules, rather than a reference to the module itself. This is to allow module reloading. * bike/parsing/extended_ast.py: Added 'addtypeinfo' call to Source node. This is now done when the sourcenode is added to the parent node rather than being run once over the whole tree. This facilitates adding additional trees to the ast without having to run the whole addtypeinfo step again. * bike/parsing/addtypeinfo.py: Removed the subclasses stuff from the classtypeinfo functionality. Doing this at initial-parse time is too brittle, since a reload of a child source node could remove (or add) a subclass from a base class. Instead, subclasses are calculated at refactoring time. 2002-03-07 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtypeinfo.py: Removed addfqn, addparentscopeToNode and addSourcenode to nodes functionality from the SourceModule, and integrated them with the first 'addtypeinfo' pass. This almost halves the initial parsing time.2002-03-04 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Changed renameMethod signature to take a method fqn rather than class and method parameters. This allows the tests to take advantage of the same signature for renameMethod,renameFunction and renameClass. * bike/ui/bikeemacs.py: refactored to use the new bikefacade module * bike/ui/bikefacade.py: New module which provides easy interface into brm, for integrating into IDEs. * bike/parsing/test_addtypeinfo.py: Added recursion handling for things like a=a() (just catches the runtime error)2002-02-28 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtypeinfo.py: found a problem with lambdas - they take the reference from the outer scope. If the reference is a loop variable (e.g. for i in blah) then it is reassigned which knackers the closure. Solution - lambda i=i: doSomethingWith(i) * bike/ui/bikegui.py: removed reliance on tokens * bike/parsing/tokenhandler.py: added getStartCoords() and getEndCoords() functions. 2002-02-27 Phil Dawes <pdawes@users.sourceforge.net> * */setpath.py: code which insures pythonpath includes path to the bike module (used for running test scripts). This is imported by most modules. * bike/parsing/extended_ast.py: moved addParentScopeToNodes() functionality from addtypeinfo into Source class. * bike/parsing/addtypeinfo.py: For deduced types (e.g. types got from function calls), the closure of the type deducing function is put in the typeinfo rather than the type itself. The closure is then run at lookup. This facilitates lazy loading, and means source modules can be reloaded without invalidating the typeinfo objects. 2002-02-18 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/bikeemacs.py: Added reload source functionality * bike/ui/bike.el: Added support for renameMethod - prompts user for types that brm can't deduce2002-02-06 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/bikeemacs.py: New support for emacs * bike/parsing/addtypeinfo.py: Fixed bug which was causing inheritance specs not to be renamed * bike/parsing/output.py: Added some code to preserve level of indent in multiline (comma ended) statements (e.g. function arguments, class inheritence args etc...). This really needs reworking into a general solution, but works 70% of the time for now.2002-01-31 Phil Dawes <pdawes@bea.com> * bike/parsing/output.py: Added comment indenting code which should preserve the indent level of comments2002-01-28 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameClass.py: Added functionality to rename the function and class ref in 'import a.b.theFunction and from a import theClass' type statements * bike/parsing/renameFunction.py: new refactoring * bike/parsing/tokenhandler.py: Added code to update the typeinfo objects of the parent scope and the Top node. This enables renames to be carried out more than once on the same ast * bike/parsing/addtypeinfo.py: Removed node.typeinfo.fqn. refactor code should now use node.fqn2002-01-25 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/tokenhandler.py: Added token functionality to Name. Removed the getPreceedingTokens() stuff - the getTokens() now returns all tokens including preceeding comments, tokens etc... getNodeTokens() returns just the tokens associated with the node. This is consistent across all the tokenhandler base classes. * bike/parsing/tokenutils.py: Fixed bug in _appendTokens where the src 'raise foo' would result in 'raise' being picked up when searching for 'foo' because both tokens are of the same type (name).2002-01-24 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtokens.py: Added code to class tokenizer to delegate tokens to the baseclass spec (i.e. bah in 'class foo(bah):'). * bike/parsing/tokenhandler.py: Class handler stuff to output tokens (see above). This means that renameClass now renames class refs in baseclass specs. 2002-01-23 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Fixed a bug which stopped classes that inherited from classes not in the ast from having method declarations renamed.2002-01-22 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/output.py: Added support for handling line breaks. i.e. if foo and \ bah: * bike/refactor/renameClass.py: Started new refactoring - renameClass * bike/parsing/addtypeinfo.py: removed 'typing indirect recursive functions causes stack overflow' bug * bike/refactor/renameMethod.py: Refactored the code so that the renameMethodReferences is done once, with a list of all the classes (in the hierarchy) to match. 2002-01-21 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Now renames methods on all related classes (base classes and sub classes). * doc/*: added some html documentation 2002-01-19 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Did some major refactoring and removed all the code which is functionally duplicated in the addtypeinfo module. * bike/parsing/addtypeinfo.py: Spruced up the type inference stuff. ModuleTypeInfo now handles from foo import * by storing a list of other modules to search.2002-01-17 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/output.py: Save now returns a list of the files modified2002-01-16 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/extended_ast.py: Added lazy tokenization. Source node now parses the source (rather than being handed the ast).2002-01-15 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/output.py: Added lazy saving. Files are only saved if source modified. * bike/testutils.py: Added new utility to find an ast node in a tree based on attributes of the node. e.g. getMatchingASTNode(ast,"Function",name="foo") 2002-01-14 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Added functionality to look for method and ref renames in sub classes2002-01-11 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtypeinfo.py: Added support for imports, import from and import as statements2002-01-09 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/tokenutils.py: Fixed bug where method call was split over 2 lines. The problem is that the tokenlist contains the NL, but the parsetree doesnt, so the matching wasnt working. See addtokens test_doesntBarfWhenMethodCallSplitOverTwoLines for details. * bike/parsing/brmtransformer.py: Added 2 classes which override Print and Println, and return the child nodes in the desired order (they are the wrong way round as they come out of ast.py). The print_stmt method returns these. * bike/parsing/output.py: Added code to handle spacing with commas and stream operators2002-01-08 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/test_renameMethod.py: Refactored tests so that BikeGUI can use them (through template method). Tests are now split into RenameMethodTests, RenameMethodReferenceTests_ImportsClass and RenameMethodReferenceTests_doesntImportClass. This is because bikegui 2002-01-07 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/bikegui.py: Added dialog to ask user if want to rename method reference (for cases where the type engine can't deduce the type of the instance)2002-01-04 Phil Dawes <pdawes@users.sourceforge.net> * bike/ui/bikegui.py: Added a simple gui for renameMethod2002-01-03 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/load.py: Added functionality to strip of preceeding directories from package structures. (so if you load '/usr/local/python2.2/compiler', the root package is 'compiler') * bike/parsing/load.py: Added load_readonly(), which doesn't do the addtokens step. Also added code to enable load() to be called more than once, to add new files and packages to the tree. Moved ui messages into constants module 2002-01-02 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/brmtransformer.py: removed addTokens() step from parse(), so that it must be called seperately. This is because it isn't complete, and imposes quite a performance penalty. (and it's not needed by pyxmi). Updated all the tests to reflect this.2002-01-01 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtypeinfo.py : Added getSubClasses() functionality to class typeinfo.2001-12-30 Phil Dawes <pdawes@users.sourceforge.net> * bike/*: Fixed path bugs for windows platform. All tests run on win32 python now. 2001-12-29 Phil Dawes <pdawes@users.sourceforge.net> * bike/parsing/addtypeinfo.py: Added 'self' type to function typeinfo. This means renameMethod can handle self.theMethod() automatically.2001-12-28 Phil Dawes <pdawes@users.sourceforge.net> * pyxmi: Wrote little tool to create xmi representation of python code. Suitable for loading into argouml. * bike/ui/bikecli.py: Added progress meter support. (also in addtokens.py, renameMethod.py, load.py and output.py2001-12-26 Phil Dawes <pdawes@users.sourceforge.net> * bike/refactor/renameMethod.py: Fixed bug where function call returning instance resulted in crash. 'e.g. e().f()'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -