SciTE: Scintilla Text Editor with Extensions
Scintilla Text Editor (SciTE) is a very nice small-footprint source
code editor based on the Scintilla
text editor widget. SciTE and Scintilla itself are made by Neil Hodgson
There are many useful extensions to SciTE. One extension that I have
found very handy is the Windows Explorer Context Menu
Handler by Andre Burgaud <firstname.lastname@example.org>.
I've put together a setup wizard that bundles Neil's SciTE
with Andre's context menu handler, as well as several other
configuration enhancements available on the net, and my own tweaks to the
configuration files (making SciTE work the way I like it, not necessarily
the way you like it!). The setup wizard fits on a floppy with room to
spare. Not bad for a full-featured scriptable editor with syntax
highlighting and folding support.
This is a custom build based on my local CVS repository, updated to
the 1.77 release. The only notable difference between my codebase and
Neil's is that I included Reuben Thomas's bitlib, a C bitwise
operations library for Lua; and my version supports a
start.in.monospaced.mode property that causes SciTE to start
with "Use Monospaced Font" turned on. Also related to
monospaced fonts, a change in core SciTE 1.67 had a side effect that
caused the monospaced option to reset itself whenever a new buffer is
initialized. In my version, SciTE remembers the last user-selected
monospaced setting and applies it when a new buffer is opened. Also I
have been working restoring the package environment a bit closer to the
initial state (e.g. resetting most other fields besides package.loaded,
although package.preload is still not a deep copy). Other than these
source code changes, I have a few differences in the makefiles to support
my local build process; and of course there are many customizations to
the property settings.
Note, now that we're at Lua 5.1 and have a better mechanism for
packages / modules, bitlib is no longer loaded automatically. It is
compiled in, but you have to
require("bit") if you
want to use it. This way the default global namespace is identical to the
official SciTE. If you use bitlib and don't want to worry about it,
just put that line in your Lua startup script.
Note, bitlib's old
bit.mod function has been
deprecated and removed by the library's author. Use Lua 5.1's
% operator instead.
The installation package includes a full change set - properties and
source code - in Unified diff format. The setup wizard installs the
change set as scite-wbd-release.diff. This format is human readable,
so you can peruse it to see all of my changes in one place. The changes
can also be applied to the official source release using GNU patch.
If you are upgrading from version 1.57 or earlier of my installer,
please uninstall the older version first, or you may end up with more
than one entry in your "Add / Remove Programs" list. Starting
with 1.58, it is no longer necessary to uninstall before upgrading.
However, be careful if you have made any further customizations to the
global property files: when you upgrade, these files will be overwritten,
and your changes will be lost. Also, make sure you don't have SciTE
running during the upgrade, or it will require a reboot.
Here is the full content of my installation package:
- SciTE for Win32 as published by Neil Hodgson at www.scintilla.org.
The installer is based either on Neil's official binary release of
SciTE, or on the official source code with additional patches. When an
unofficial build is used, I indicate this in the version number displayed
in the SciTE About window.
- Andre Burgaud's "Open with SciTE" Context Menu
I am using the new version 1.2.1, which is published with source code at
burgaud.com. (Thanks Andre.)
Since this must be registered as a component, this was one of the reasons
I wrote the setup wizard in the first place. The wizard has a checkbox to
disable this option. (The context menu handler can only be installed
if you have administrative priviledges.)
- Configuation modified according to my preferences.
e.g. I like monospaced font and line numbers, and I don't like tabs
in my source code. I also included some of the API and Keyword files from
section of the Scintilla / SciTE web site. Also, since I often use
word-wrap mode when editing text files, CTRL-F12 is mapped to toggle
word-wrap on or off.
- Useful helper tools. AWK is included, mainly to enable "Find in
files" support on Windows 95/98/Me; and so is HTML Tidy, which
enables HTML / XML reformatting via the Tools menu.
- The wizard is created using Inno Setup by Jordon Russel. I
am currently using Inno Setup 4.2.x. The installer source script is
included in the package. If you make improvements to it, please consider
sending the enhancements to me (wbd at users dot sourceforge dot
I originally wrote this installation package for myself, because it
helps me in my work: it fits on a floppy and makes it easy for me to
replicate a familiar editing environment when I go to a client who only
has Notepad. The configuration is still geared mainly toward my own
idiosyncratic preferences, but I am encouraged to know that so many other
people are deriving value from it. So, as long as you keep downloading
it, I'll try to keep it up to date.
The package is distributed under a license which is essentially a
composite of Neil's license for Scintilla and SciTE; Andre's
license for the context menu handler; TecGraf's license for Lua; the
licenses for the other tools such as awk and tidy; and my own terms for
the installation package itself. (My terms are the same as Neil's.)
I've posted the license notice here.