After two years of development I have recently made the first general
release of Luke-SDK which is a general purpose development
environment. Due to problems with the wx.TreeCtrl on Windows I have
concentrated on getting the Linux version into a usable state.

It is aimed at those who are used to a mixed mouse and keyboard style
of editing familiar  to Windows users. There are only a few special
key strokes, such as Shift+Ctrl+V for "smart paste", but it is not
necessary to learn a large number of obscure key combinations.

It aims to be usable  out-of-the-box without the need for plugins.
There are only two requirements: Python and wxPython. All other
dependencies are optional and assistance is provided for locating the
packages and web sites for the compilers, interpreters, debuggers,
syntax checkers and build systems for the supported languages: Boo, C,
C++, C#, D, Java, JavaScript, Lua, OCaml, Perl, PHP, Pike, Python,
Ruby and Tcl/Tk.

The user interface makes extensive use of context sensitive menus and
every menu starts with a title line that is also a way of obtaining
specific help for the menu.  Most dialog boxes have a Help button to
explain what input is required. There are few options so that new
users are not expected to make choices that they may not understand.
Unsuitable defaults that may trap unwary users are avoided.

Any directory can be opened as a project without prior definition as
such. Practically all files in a project can be opened in the IDE or
in an external tool.  For example, a .glade file can be opened in the
Glade Interface Designer or edited as an XML file.  The project
directory defines the scope of the search-in-files facility that I
consider to be one of the most useful features of the IDE.

Individual developers can benefit from a local version control system
even if they do not have access to a shared repository. This option is
provided by Bazaar-VCS - a Python based system promoted by Canonical.
The project directory tree shows which new or modified files have not
yet been committed to the branch repository.  The branch is contained
in a hidden subdirectory within the project and is included in the
backup zip or tar file that should be made for each release.

There is a Smart Terminal that allows interactive shells to operate
within a wx.TextCtrl. On Unix such programs need to be connected to a
pseudo terminal if they are to operate in interactive rather than
batch mode. However, the easy way to connect a Python program to
another process is by pipes.  I have solved this by writing a small C
program to copy to and from the subprocess via the pseudo terminal.
The class containing the wx.TextCtrl implements most, but not all of
the xterm (VT100) control sequences. The advantage of running the
shell in the interface, rather than in a separate application, is that
you can do so much more with the results than a xterm clone.

In order to enable the user to add tools and wizards with interactive
front-ends I have implemented a set of functions for creating a dialog
without using wxPython directly.  This idea is not fully worked out
but is sufficient for basic requirements. With further development it
might be worth considering as a separate Python package.

There is a built-in method of running commands via sudo so tha Linux
system administrators can use it to edit configuration files or i
install software.

Reply via email to