This release fixed a critical error in v2.4. (Editor tabs not painted after certain operations). See the announcement for v2.4 for other details.
Δευτέρα, 13 Δεκεμβρίου 2010
Σάββατο, 11 Δεκεμβρίου 2010
Some of the entries on the Issue Tracker provide some indication of what you can expect to see in future versions of PyScripter. Some of the “bigger” items on the development agenda are:
- support for code folding (Issue 16)
- show doc entry next to drop-list of code completion entries (Issue 274)
- support for zip imports (Issue 454)
- support for debugging of multi-threaded applications (Issue 455)
- support for embedded Python engines (Issue 456)
- Python scripting of the IDE (Issue 457)
You can influence the development priorities by “voting” for a specific issue. This can be done by simply “starring” the issue. You can vote even louder by making a donation towards the implementation of a given issue.
- Side-by-side file editing ( Issue #214 ). Please read the help topic “Side-side file editing” to learn more.
- Enhanced regular expression window (findall - Issue #161 )
- Open file at a specific line:column ( Issue #447 )
Τετάρτη, 8 Δεκεμβρίου 2010
A new option has been added to the Regular Expression Tester “Findall” in version control. This performs a RegExpObject.findall on the search text and allows you to view all matches.
Here is an example:
Notice that the matches are highlighted. The spin edit control allows the user to view group information for each match.
Κυριακή, 28 Νοεμβρίου 2010
A much requested feature has been the ability of view and edit more than one files in the editor simultaneously. This feature has been implemented in version control and will be made available in the next release.
Here are some screenshots:
Notice that there are two sets of tabs and you can drag&drop tabs from one set to the other.
Two files can be displayed and edited either vertically or horizontally.
Here we have two files displayed vertically and for each file we have a second editor view displayed.
Τετάρτη, 24 Νοεμβρίου 2010
- It will now locate the Python help file in a more robust way to provide context sensitive help.
- It will look for custom skins in the Skins subfolder of the directory in which the PyScripter executable is located and only if that directory is not found it will search the %APPDATA%\PyScripter\Skins directory. So now you can carry custom skins with you.
Starting from PyScripter 2.3.4, without the --PYTHONDLLPATH command-line option, PyScripter will only use registered Python versions. So it will ignore loose pythonxx.dll found on the system path. To use with non-registered Python versions you need to use the –PYTHONxx and –PYTHONDLLPATH command-line options. See the FAQ at the PyScripter project site for more information.
PyScripter version 2.3.4 was released at http://pyscripter.googlecode.com.
- Compatibility with Python 3.1.3rc, 3.2a4
- Add watches by dragging and dropping text
- Ctrl + Mouse scroll scrolls whole pages in print preview
- Search for custom skins first in the Skins subdirectory of the Exe file if it exists
- Issue #430 , Issue #434 , Issue #435 , Issue #439 , Issue #440 , Issue #441 , Issue #443 , Issue #446
The full history can be found at http://code.google.com/p/pyscripter/wiki/History.
Παρασκευή, 12 Νοεμβρίου 2010
There was a question at the PyScripter newsgroup about how to setup code completion for PyQt4. Have a look at the answer given there, since it may also be applicable to code completion of other packages that use extension modules.
Κυριακή, 31 Οκτωβρίου 2010
The problem with the way PyScripter searches for the python dll is that, when used without any command-line arguments, it will try to load some loose python dll found on the system path that was placed there by an installed application, even if this dll is not related to a properly installed python version. (See step 3 in the previous post). This typically will result in unpredictable errors after starting PyScripter, since python will not be able to find the module libraries.
As an example, this might happen when you have installed python version 2.5 but, somehow a loose python26.dll can be found on the system path.
I am thinking of dropping step 3 in the algorithm described in the previous post and only try to load registered python versions when PyScripter is invoked without any command-line parameters or with just the –PYTHONxx flag. This means that if you want to use PyScripter with an unregistered version of Python you would have to use both the –PYTHONxx and the –PYTHONDLLPATH parameters. Any thoughts?
Most python users have multiple python versions installed. In addition various other software packages install custom versions of python often placing pythonxx.dll on the windows system path as defined by the environment variable %PATH%. It is worth explaining how PyScripter locates the python dll, since the issue pops up regularly in the newsgroup and submitted bug reports.
There are two types of Python installation:
- All users installation
Python creates registry entries with installation info at HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.x and puts places the python dll in c:\Windows\System32.
- Single user installation
Python creates registry entries with installation info at HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\2.x and does not put the dll in c:\Windows\System32.
PyScripter, without any command line flags looks at the registry to find the latest version of Python and then for an all user installation tries to load the relevant Python dll from the system path. For a single user installation tries to load the DLL from the Install path that is in the registry.
In more detail PyScripter does the following:
Currently PyScripter knows of versions 3.2, 3.1, 3.0, 2.7...2.3. Below, system path refers to the Windows path (environment variable) and x.x refers to the version number.
Repeat for versions 3.2 down to 2.3:
- Look at the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\x.x (All users). If key is found assume the dll is in the system path and try to load it.
- If the previous key does not exist it look at HKEY_CURRENT_USER\SOFTWARE\Python\PythonCore\x.x (Single user) and try to load the Python DLL from the path specified in the registry.
- If there is no info in the registry try to load the DLL from the system path to cater for unregistered Python versions.
- If Python DLL was loaded successfully then break
When PyScripter is used with a --PYTHONxx flag then it does the above but searching only for the specific version. The Registry lookup does not take place when Python is used with the --PYTHONDLLPATH. Instead PyScripter tries to load the Python dll from the specified path. The --PYTHONDLLPATH flag should be used with the --PYTHONxx flag. See http://pyscripter.googlepages.com/portablepython for an example of using PyScripter with portable Python.
The %PYTHONHOME% environment variable is not used by PyScripter directly but by Python to find the installed libraries. See the Python documentation for its use.
Κυριακή, 24 Οκτωβρίου 2010
PyScripter version 2.3.3 was released at http://pyscripter.googlecode.com. This update fixes a regression introduced in version 2.3.2, that manifests itself when using the Run, Command Line Parameters command.
Σάββατο, 23 Οκτωβρίου 2010
- Issue 432
- A bug that could cause exceptions in the code explorer. The fix also makes the editor more responsive when working with large files.
The full history can be found at http://code.google.com/p/pyscripter/wiki/History.
Σάββατο, 16 Οκτωβρίου 2010
You might have noticed the Maximize/Restore Editor commands in the View Layouts menu. What you may not know is that you achieve the same by double-clicking on the editor tab-bar (on empty space – if you can find some!-, not on the tabs).
A quick way to add a watch for a Python variable is to click on it and press Alt+W. This is the shortcut of the “Add watch at cursor” command which is hidden at the context menu of the Watches Window. In the future I will add drag-and-drop support for the Watches window so you can drop whole expressions on it. (Can someone bother to create an issue about this at PyScripter Issue tracker to act as a reminder?)
If you have used PyScripter for some time you may well know that you save different layouts (IDE window arrangements) from the View, Layouts menu or the Layout toolbar button in the View Toolbar and then easily switch between them. What you may not know that if you call a layout “Debug” then it is used in a special way. Every time you start a debugging session, PyScripter automatically switches to the Debug layout. At the end of the debugging session the layout that was used before debugging started is restored.
Here is a sample debugging layout
TIP: This not documented but internally PyScripter uses the following
method to prevent debugging certain modules:
__import__('module name').__traceable__ = 0
You can include such statements in python_init.py to prevent stepping into certain units.
Πέμπτη, 14 Οκτωβρίου 2010
A “feature” of Python is that the locals dictionary of a Python frame is read-only. What this means is that if you change a local variable during debugging ,its new value will be ignored when you resume the program. Consider for example this trivial script:
b = 2*a
print(b) # break here
With PyScripter 2.1.1 if you break at the print statement and issue the commands in the interpreter:
[Dbg]>>> b = 10
you can see that no matter how hard you try you cannot change the value of the local variable b. This is not just a PyScripter issue. See for example the feature request submitted by the author of pydev at http://bugs.python.org/issue1654367.
Well, I found a way to remove this restriction and if you try the same in PyScripter 2.3 you get:
[Dbg]>>> b = 10
as you would be right to expect. The workaround requires ctypes which is included with Python 2.5 or later.
Τρίτη, 12 Οκτωβρίου 2010
One of the areas that received significant attention is the Code Explorer. First of all, functions are now displayed with their arguments. If you look at the context menu of the Code Explorer background you will see the following options:
Here is the explanation of the new options:
As soon as you start typing the highlight goes off (as with the Highlight search text command). You can also hide the highlight by depressing the Highlight search text button in the Find toolbar or using the command shortcut Shift+Ctrl+H.
Δευτέρα, 11 Οκτωβρίου 2010
A number of improvements to code completion have been implemented and will available with the next release of PyScripter:
- Caching of parsed modules for greater speed
- Background parsing of open editor files
- Analysis of return, with and global statements
- Completion for calls to open
Just to give a couple of examples:
x = A()
a = f()
PyScripter understands a is a string and provides autocompletion. It also provides autocompletion in the following examples
f = open(“somefile”)
with open(“somefile”) as f:
Κυριακή, 10 Οκτωβρίου 2010
In PyScripter try View, Themes, EOS
Further dark theme is available at http://www.mytreedb.com/downloads/m-subcat/a-skins.html(you need to download the archive and place the skin file at %APPDATA%/pyscripter/skins)
You can find dark highlighters at http://code.google.com/p/pyscripter/wiki/Customization
(download and import into PyScripter via View, Options, Import/Export)
Finally you can create your own skin using the skin editor at
Here is a sample of what you can get: