### History For PyDev Extensions

Note: this history only takes into account what was done in PyDev Extensions before it was merged with PyDev.

- #### Release 1.4.8

- Created public API for starting/finishing debug server
- Import based on unresolved variables works correctly when the document is changed
- Ignore error works correctly when the document is changed
- No longer showing the replace button for the search

- #### Release 1.4.7

- IronPython support (version 2.6 upwards)
- The interactive console can be used on the remote debugger
- Remote debugger properly redirects contents from the server on multiple runs.
- Providing context-independent completions when other completions are not available (until now, it only gave those completions for method parameters)
- The number of chars required to show the context-insensitive completion can now be customized.
- Fixed problem with Eclipse 3.5: "Invalid Thread Access" when trying to rename a class

- #### Release 1.4.6

- Auto-import for from __future__ import with_statement will add a 'with' token instead of a with_statement token
- Globals browser improved (only for Eclipse 3.3 onwards, older versions will have the old interface):

- Can filter with working sets
- Can match based on module names. E.g.: django.A would match all the django classes/methods/attributes starting with 'A'

- #### Release 1.4.5

- Derived resources are no longer analyzed
- No longer giving spurios warnings when file being analyzed is removed

- #### Release 1.4.4

- This release fixes a critical bug when configuring the interpreter (if no environment variables were specified, it was not possible to configure an interpreter)

- #### Release 1.4.3

- Fixed racing conditions in the context-insensitive indexing which could corrupt the index.
- Search references working on Eclipse 3.3 and Eclipse 3.4
- Lambda properly treated as a new context for code-analysis
- Analysis is now recognizing __name__
- Analysis now marks variables used when accessed with augstore (+=)
- Some definitions were not properly indexed on some assign cases

- #### Release 1.4.2

- Context insensitive code-completion working with multiple interpreters
- Fixed code analysis problem on staticmethod
- Giving proper warning on version mismatch
- Remote debugger fix

- #### Release 1.4

- Python 3.0 supported
- Python 2.6 supported
- Code-analysis: Was locking caches for too long (which could end up having stale results)

- #### Release 1.3.24

- Code-analysis: Import was not recognized on code-analysis on some specific cases

- #### Release 1.3.23

- Code-analysis: Fixed condition that could make code-analysis get into a halt depending on the code structure
- Remote Debugger: Can properly debug multiple processes concurrently
- Remote Debugger: Makes the proper setup of breakpoints when pydevd.settrace is called with suspend=False

- #### Release 1.3.22

- Code-analysis: Option to analyze only active editor (window > preferences > PyDev > builders)
- Code-analysis: works on case where imported module has same name of builtin.

- #### Release 1.3.21

- Internal release

- #### Release 1.3.20

- Code Analysis: Show error if using token not defined in __all__ in wild import.
- Search: Working with eclipse 3.4.

- #### Release 1.3.19

- Code Analysis: Not all unused imports are shown in the message anymore (could give problems saving workspace).
- Code Analysis: Fixed problem on double cycle in list comprehension.
- Interpreter config: The initial parse of the modules is much faster.

- #### Release 1.3.18

- Auto-import: Groups imports when possible.
- Auto-import: Doesn't bring imports for completions already in the document even if a parse is not successful.
- Organize Imports (ctrl+shift+O): Suggests imports to the undefined tokens in the editor.
- Import quick-fix: Icons correspondent to the element being imported.

- #### Release 1.3.17

- Bug-fix release.

- #### Release 1.3.16

- Code Analysis: __path__ Not correctly found on some situations.
- Local rename (ctrl+2+r): Positions correctly ordered for tabbing.

- #### Release 1.3.15

- Globals Browser: Was not correctly showing definition on a case with multiple projects when one did not have the python nature configured.
- Code Analysis: False positive: Classes defined within a class context are correctly found when later accessed in the parent context.
- Interactive console integration

- Context insensitive completions with auto-import in console
- Ctrl+Alt+Enter: can be used to:

- Create console if no console exists
- Send selected text to console
- Make execfile for current file if there's no selected text

- #### Release 1.3.14

- Local renames: scoping issues.
- Local renames: comments/strings only renamed in local scope for local variable.
- False positive: undefined variable: a base-class could be flagged as undefined if used in a method scope.
- Remote Debugger: easier way to specify path translations between a remote machine and a local machine (constant must be set in org.python.pydev.debug/pysrc/pydevd_file_utils.py -- see comments on module) .

- #### Release 1.3.13

- Debug Console: will print exceptions raised during the evaluation.
- Debug Console: will print the result of the evaluation if a valid statement is sent (so, 'print' is not needed for simple evaluations anymore).

- #### Release 1.3.12

- Mark occurrences: only requested on mouse-clicks and cursor changes.
- Code-Analysis: No longer running in UI-Thread (bug which slowed things down in 1.3.10 and 1.3.11).
- Code-Analysis: Cache optimizations.
- Code-Analysis: Fixed 'statement without effect' when raising exception with arguments without using the exception constructor.
- Code-Analysis: Fixed 'statement without effect' on tuple creation.
- Code-Analysis: __path__ found for packages (__init__.py files).
- Context-insensitive info: Correctly updated when code-analysis is off (or if file is not analyzed).

- #### Release 1.3.11

- Code-analysis: Doesn't report 'statement without effect' within yield.
- Code-analysis: @DynamicAttrs now works in direct class access (not only on instance access from a class).
- Code-analysis: Names to consider in global do not trigger undefined variables when they have some attribute access.
- Code-analysis: Accessing locals() will mark local variables as read.
- Code-analysis: No indentation warnings on multiline strings that use double quotes.

- #### Release 1.3.10

- Code-analysis: Doesn't report 'statement without effect' within list comprehension.
- Context insensitive code completion: Shows contents of zips/eggs/jars
- Go to definition: Working with zips/eggs/jars.

- #### Release 1.3.9

- Code-analysis: detects bad indentation (wrong number of indent chars).
- Code-analysis: Class may be marked with '@DynamicAttrs' so that the code-analysis doesn't give undefined variable errors. See Code Analysis for more details.
- Mark-Occurrences: Fix: a class that had a call would not be recognized sometimes.
- Rename Refactoring: Fix: when different heuristics yielded the same result the text could become garbled.

- #### Release 1.3.8

- Code-analysis: Detects mixing of spaces and tabs.
- Code-analysis: Reimport not flagged when inside of try..except ImportError.

- #### Release 1.3.7

- Support for Eclipse 3.3
- Bug-Fixes!

- #### Release 1.3.6

- Bug-Fixes!

- #### Release 1.3.5

- Auto-Import:

- Import is now set in correct line even with multi-line imports.
- Added option to disable the introduction of auto-imports.
- Added option to remove modules that start with '_' from the imports (so, tokens would have to be found in __init__.py files).

- Code Analysis: Having a list comprehension with a subscript was not being treated correctly.
- Debugger: Working with jython.
- Debugger: Working with wxPython.

- #### Release 1.3.4

- Mark Occurrences: 'global' used in the global scope is correctly treated.
- Code Analysis: __builtins__ considered in global namespace

- #### Release 1.3.3

- Quick-fix: When an import is added from the auto-import quick-fix, a code-analysis is requested right after it.
- Minor bugs fixed.

- #### Release 1.3.2

- Fix: The vmargs in the interactive console are now only really passed to the jython process
- Fix: Rename refactoring was not getting some references that mapped to imports initially (and not directly to classes or functions)
- Fix: Mark Occurrences marks correctly the keyword parameters in referencing calls

- #### Release 1.3.1

- Interactive Console: jython process can receive vmargs (configured in the preferences page)
- Code-Completion: auto-import completions will not be brought for tokens in the current module
- Code-Completion: auto-import inserted as last import in imports list (so, __future__ imports will remain in the 1st position)
- Code-Analysis: Only adds unused parameters in methods that have some statement that is not a 'pass' or string
- Fix: Find Occurrences: will not 'overlap' occurrences anymore
- Fix: Code-Analysis: deep attribute access after finding __getattr__ does not signal unresolved import errors anymore

- #### Release 1.3.0

- Find References: Ctrl+Shift+G can be used to find the references to the selected token in the editor
- Fix: Code-analysis: Fixed false positive for statement with no effect

- #### Release 1.2.8

- Code-analysis: when a compare statement is found out of a test scope, that's reported as a warning
- Mark Occurrences: new option to choose whether strings and comments should be highlighted
- Simple Completions: some keywords were removed from the default list (the 2-letter ones because they're barely worth it and those related to 'try', as there's already an assistant that creates 'try' blocks)
- Rename refactoring / Mark Occurrences: matches in multi-line strings are now correct

- #### Release 1.2.7

- Mark occurrences and rename now will also get the tokens in comments and strings
- Rename refactoring bugfixes (but still not final)
- The remote debugger port can now be specified