Xrefactory s.r.o.
|
This page summarizes in chronological order modifications made
during the evolution of Xrefactory for Java software.
Version 1.6.10
- A forgotten license check has been removed.
| |
Version 1.6.9
- Fixed problem of compilation of source with gcc4.
| |
Version 1.6.8
- The first free release.
| |
Version 1.6.7
- Fixed problem with removal of unused parameter during 'Turn virtual
method to Static'.
- Fixed problem with pretty printing in a browser windows when a field
has the same name as a method.
| |
Version 1.6.6
- Database files are more compact because unnecessary white spaces
have been removed.
- Faster update when only small number of files has been modified
(this is the case during majority of refactorings).
- Faster Extract Method and renaming of local variables in Java.
- Fixed the problem with browser opened in multiple Emacs frames.
- 'Turn Dynamic into Static' now removes the new parameter if it is
unused. However, the case of recursive calls is still unhandled.
- Fixed the problem with the compilation under FreeBSD 5.
| |
Version 1.6.6
- Database files are more compact because unnecessary white spaces
have been removed.
- Faster update when only small number of files has been modified
(this is the case during majority of refactorings).
- Faster Extract Method and renaming of local variables in Java.
- Fixed the problem with browser opened in multiple Emacs frames.
- 'Turn Dynamic into Static' now removes the new parameter if it is
unused. However, the case of recursive calls is still unhandled.
- Fixed the problem with the compilation under FreeBSD 5.
| |
Version 1.6.5
- OS/2 support for the xref-any distribution (thanks to Dmitry
Kuminov).
- Fixed the problem with imports in dead code detection.
- Fixed the problem when the symbol search dialog did not propose the
list of project symbols.
- Fixed the problem with truncation of lines making that in the
extract method dialog a part of the profile of the new method was
invisible.
- Fixed the problem with buffer switching after two successive
completion dialogs.
- Fixed the problem when an inner interface needed to be declared
static before moving.
| |
Version 1.6.4
- Refactoring problems with UTF-8 and UTF-16 encodings have been
fixed. Support for EUC and SJIS encodings has been implemented.
- Ordering of Java fully qualified type name completions has been
improved. Exact matches now appear at first positions.
- Problem with Extract Method refactoring when the region is selected
from bottom to top has been fixed.
- Few problems in syntax highlighting of completions under Emacs have
been fixed.
| |
Version 1.6.3
- Xrefactory correctly updates tags before refactoring also in C.
- the option 'Save files and update tags before refactorings' is
turned off under Emacs/XEmacs.
- problem with adding/removing/moving of parameter of a macro is
fixed.
- Emacs/XEmacs dialogs should work under an alphanumerical console.
- under Emacs/XEmacs, the C-g key combination pressed during
creation/update of tags (or when precomputing a refactoring) will
kill extern task and clean-up temporary files.
- problems with refactoring dialog after a failed refactoring are
fixed.
- problem with non-generating of correct imports in moving
refactorings is fixed.
- problem with undoing of 'Move Class to New File' refactoring
fixed. Also a failed refactoring does not create an empty buffer
anymore.
- problem when progress bar went beyond 100% fixed.
- few more non-specific bugs in refactoring fixed.
| |
Version 1.6.2
- fixed problem with update of references from header files.
- completion after left parenthesis displays also methods with no
parameters.
| |
Version 1.6.1
- problem with first update after create Tag file fixed (sometimes the
first update has reparsed too many files).
- fixed problem with formatting of completions when line truncation is
turned off under Emacs.
- fixed problem with 'move class' refactoring applied on interfaces.
- fixed few SPARC related problems (especially compilation with gcc).
- fixed problem with generation of HTML for large projects.
- fixed small problem with macro expansions in C preprocessor.
- jEdit interface works with both jEdit 4.1 and jEdit 4.2.
| |
Version 1.6.0
- Completions may be case insensitive removing the necessity of typing
upper case letters. For example: getba_ is completed to
getBackground if this is the only appropriate completion.
- The Emacs interface has been entirely reimplemented. It now supports
multiple windows (protecting those opened by the user); supports
basic version control systems; uses left mouse button equivalently
to middle button and provides refactorings in a single function. The
new interface will require a little effort from older users, but it
should be more natural than the old one. For beginning: <escape>
closes dialogs and ? proposes helps.
- Parameter completions for Java methods. Completion of an empty
string at place where a parameter is expected shows method profiles.
- Symbol retrieval functions accept shell like expressions containing
wild character * [ ] and ?.
- Wild characters * [ ] and ? can be used also in input files, include
directories, classpath, sourcepath and javadocpath.
- Input files can be entered using paths relative to project
directory.
- Include directories can be entered using paths relative to currently
parsed file.
- -prune option can be used to prune unwanted directories when looking
for input files.
- Completion of fully qualified type names in Java can be customized.
It may propose all classes from jar archives, current project,
classpath and sourcepath.
- Moving refactorings can be customized to move also commentaries
preceding the moved definition.
- New communication protocol between Emacs and xref task has been
implemented. This should considerably speed up refactorings under
MS-Windows systems.
- New editing function has been implemented under Emacs. It maps a
user defined macro on all occurrences of a symbol (dangerous but
useful).
- 'Last Compile & Run' macro under Emacs memorizes the last command
per project. This is more natural when working simultaneously on
several projects.
- The .xrefrc configuration file can be stored in a user defined
directory.
| |
Version 1.5.10
- Fixed problem when nested class was not inherited from an interface.
- Extraction is adding newline when region does not finish by it.
- Fixed problem when class tree items were not linked to sources
correctly.
- Option -source indicating used version of Java (i.e. 1.3 or 1.4) is
added for compatibility with javac compiler.
- Problem with evaluation of long constants in pre-preprocessor's
constant expressions fixed.
| |
Version 1.5.9
- New browsing function allows to push all references of a symbol
entered simply by its name. This function was requested by ctags
users.
- In 'Search in Tag file' dialog the key is automatically
browsing Javadoc in case that definition reference is not found.
- Fixed possible problem in Extract-Method in presence of try-catch
statements.
- Fixed problem with inserting parameter to C function declarations.
- Better error recovery has been implemented in C parser.
| |
Version 1.5.8
- Improvements in completion user interface. Those improvements make
completion auto-focus very natural to use.
- Several implementation constants were increased in binary
distributions which are now compiled with XREF_HUGE flag. This gives
possibility to index large files to users having only personal
licenses.
- Variable __BASE is now predefined in Xrefactory environment and is
referring to current project name. You can use ${__BASE} string in
your .xrefrc file instead of current project (directory) name.
- The 'Search Symbol in foreign Tag file' function does not take default
name of foreign project from .xrefrc file. It is now asking for the
name interactively.
- An improvement in 'Extract region into function' refactoring for C
language. The improvement concerns better handling of & operator.
- Problem with '-stdop' option is fixed. The option is also available
under more mnemonic name '-include <file>'.
- Problem with '-javadocpath' option in combination with non JDK
javadocs in HTML generation fixed.
- Problem of browsing javadoc of a method having parameter of a nested
class is fixed.
- In the menu as well as in the documentation we are now using the word
'Parameter' instead of 'Argument'. The new term is conform to
M. Fowler's terminology.
| |
Version 1.5.7
- The problem with empty path in -sourcepath option has been fixed.
- Emacs keeps focus while browsing Javadoc with external viewer. This
makes browsing more natural.
- Browsed URL now starts with file:// prefix when browsing files in
local file system.
- New registration function has been implemented in Emacs. Windows
users do not need to edit _xrefrc file manually anymore.
- The Emacs window containing completions is now resized proportionaly
to number of completions. The minimal size can be customized with
xref-window-minimal-size variable. If you do not like the new
feature, set this variable to negative value.
| |
Version 1.5.6
- a customizable variable 'xref-auto-switch-to-completion-window' is
available under Emacs/XEmacs. When this variable is set to t, then
after a completion the keyboard focus is automatically switched to
new window containing completions. In this window user can select
completion either by cursor motion or by continuing typing the
identifier. The completion is definitely selected with <return>.
- key binding in symbol resolution window has been changed. Now
<space> is bound to a function selecting only one item and browsing
definition reference. The <Ins> key is bound to function
selecting/unselecting an item (formerly bound to <space>). 'q' key
is bound to function closing the window and poping references.
- the window showing results of search in tag file has automatic
focus. In this window <space> inspects the definition of the symbol
and 'q' closes the window and returns to initial position in source
code.
- optionally minibuffer completion works for "Search in Tag File"
functions. In order to get minibuffer completion works you need to
set 'xref-allow-completion-in-tag-search-prompt' (a customizable
variable) to t.
- fixed problem with JNI interface.
- fixed problem in "Turn static method to dynamic" in situations when
the parameter needs to be replaced by an explicit 'this'.
- fixed problem with '-fastupdate' in combination with
'-exactpositionresolve' option. The latest version did not marked
that in fact a full update was performed in such situation.
- fixed bug with evaluation of C preprocessor conditionals containing
undefined symbols.
- newline character in string constants is tolerated.
- definition of an empty structure (having no field) in C is tolerated.
- -I<directory> option is allowed with the same semantics
as -I <directory>.
| |
Version 1.5.5
- Move class refactoring moves top-level and nested classes.
- Move (rename) package moves also corresponding directories.
- File names are considered case sensitive also under MS-Windows. The
option '-filescaseunsensitive' can be used to change them to case
unsensitive.
- A function deleting useless project is available under Emacs.
- Generation of HTML documentation can be launched directly from Emacs.
| |
Version 1.5.4
- Improvements in project creation macro. Projects generated with
'Project->New' menu item are now more complete and cover more
complex projects.
- Possibility to put multiple project names for same options. This
allows correct project auto-detection when project files are
accessed through different names (via symbolic links, for example).
- Extract method is now proposing new method definition and invocation
instead of generated header and footer. It seems to be more natural.
- When renaming or adding/removing parameter of a virtual method,
Xrefactory now proposed whole related definitions to be processed at
once. In practice it means that you can rename all methods related
through inheritance and interface implementations at once. At
difference to previous versions related classes are computed as
transitive closure not only direct super classes and their
subclasses.
- Add parameter now checks for possible collision of new parameter
with symbols from outer scope.
- Turn static to dynamic now checks for the correct type of new
parameter. It also checks for accidental clash of new parameter with
symbols from outer scope.
- Refactorings now check and report problems with method invocations
of form super.method() (when such a problem occurs).
- Completions in Java now display array variables and methods
returning an array in format 'Class[] foo()' instead of 'Class
foo()[]'.
- Wrong displaying of completions containing $ sign fixed.
- Completions now display access modification (public, protected)
every-time (even when completing only appropriate symbols).
- Optionally a completion completing single string will close window
with list of previous completions.
- An item 'run this' has been added to (X)Emacs IDE menu. It will run
Java virtual machine with currently editing class as main class
argument.
- Improvements in compile-run macros.
| |
Version 1.5.3
- Xrefactory is now capable to read majority of compressed jar
archives.
- New function 'Search Definition in Tag File' was implemented. The
function is scanning tag file and reporting all symbols defined in
your project and matching searched string. In difference to 'Search
symbol in Tag File' this function returns only symbols defined in
your project, not symbols defined in headers or jar archives. Also,
only the name of the symbol is matched against the searched string,
not its profile.
- Delete parameter refactoring is checking for accidental deletion of
used parameter.
- Encapsulate field is now processing only those occurrences of
field, where the field becomes inaccessible after making it
private. New refactoring 'Self encapsulate field' was added. Self
encapsulate field replaces all occurrences of the field by get-set
methods (which was in fact the original behavior of 'Encapsulate
field').
- When an argument manipulation refactoring (insert, delete, reorder)
is invoked on a constructor, Xrefactory automatically resolves the
ambiguity: Constructor <-> Class in favor of constructor.
- Improvements in project creation Emacs macro and several bug fixes
in compile-run macro.
- Problem with '' in URLs when generating HTML documentation under
MS-Windows has been fixed. You can now generate HTML under Windows
and then move it to a Unix server.
- New options '-htmlcutsuffix' and '-htmllinenumlabel=<label>' are
available. Using them you can generate Java html files fitting to
JavaDoc from Jdk 1.4.
- Indexing of large projects should be faster thanks to new hashing
function.
- Xrefactory now handles correctly C macros with ellipsis, such as:
#define DPRINF(format, ...) fprintf(debug, format, __VA_ARGS__)
and #include followed by a macro. Those constructions are allowed
in ANSI C'99 standard.
| |
Version 1.5.2
- pull-up / push-down method with corrections of 'this' references.
- completion works also for explicit constructor invocations (in the
first line of a constructor) after 'this' and 'super'
keywords. Completion shows all possible parameters for
constructors.
- "Rename symbol" refactoring checks for accidental application on
class or package and referring you to specialized forms
'xref-rename-class or 'xref-rename-package.
- Options in .xrefrc which are enclosed in double-quotas can contain
newline character. Thanks to this it is now possible to enter more
complex scripts for compilation and program runs. If compile or run
option contains more than one line, a temporary shell (or .bat)
script is created and executed.
- Options can contain special predefined variables for entering
problematic characters: ${dq} for double-quotas; ${dl} for dollar
sign; ${pc} for percent sign and also ${nl} for newline (even if
newline can now be entered directly in strings).
- The word assert is by default not recognized as a keyword. This is
due to compatibility reasons with programs written in java 1.3 and
sooner. By default, you can use variables or methods named
'assert'. If your program is written for java 1.4, then you should
put option "-java1.4" into your .xrefrc. This option causes that
the word assert will be recognized as keyword and assert commands
will be correctly processed. However, you will not be able to
define methods named assert anymore.
- Maximal number of listed completions is now customizable.
- numerous small bug-fixes.
| |
Version 1.5.1
- bug fix in indexation of .jar archives.
- possible confusion when class is imported by both general
import-on-demand and single-type-import is fixed.
- multiple Emacs frames are now correctly supported. It is now
possible to browse, complete, etc independently in all opened
frames. It is also possible to fix a list of references in one
frame and link them to source code displayed in another frame.
- in nearly all Xrefactory dialogs (completion list,
search-in-tag-file, symbol resolution dialog and in class tree) it
is now possible to inspect definition or browse Javadoc of
displayed symbols. This function is bind to either button2 or
Shift-button2.
- function 'search-in-foreign-tag-file' was added. It is a shortcut
allowing to scan Tag file of another project without need to
switching to it. This function switch to another project, scans its
tag file and then switch back to original project. It is supposed
that the foreign project contains some large database of symbols
(probably a huge .jar archive indexed).
- Shift left-arrow and Shift right-arrow keys are binded to scroll
left and right in completion and reference list buffers. This will
allow Emacs users to see whole completions (source lines) if they
are longer than current screen.
- a possibility to add general import (i.e. import-on-demand with .*
at the end) directly from comletions has been added to completion
pop-up menu.
- multiple invocations of xref-completions will scroll down the list
of proposed completions (if longer then size of its window).
| |
Older changes available!
|