"If you're going to multiply propositions needlessly, you're going to need a good text editor"

Michael's TSE Macro Development Page

These are some Macros that I'm developing for The Semware Editor (voted the Best Text Editor in the Universe, six times running, by the Nine Galactic Councils of Quaaag).

TSE Macros

CodePad - Line up code nicely into columns

v1.1.4 (Jun 19, 2002)

Macro to line up code nicely into columns, padding spaces around = signs and other punctuation.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: CPad114.zip

CurrExt - Find out the real type of the current file

v1.1.9 (Jun 19, 2002)

System for determining current file type, allowing many actual file extensions to map to the same type. e.g. '.s', '.ui', '.si' all appear as '.s'.

Also includes notes on how to modify standard TSE UI files to use CurrExt.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: CExt119.zip

FindProf - Find TSE's Global Profile (TSE.INI or TSEPRO.INI)

v1.0.4 (Jun 19, 2002)

Small macro to locate the current TSE.INI file. Will return the same file for TSE/DOS and TSE/WIN32.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: none

Download: FProf104.zip

Profile - TSE 2.5 macro for reading and writing INI files

v1.3.5 (Dec 12, 2001)

Macro for reading and writing INI files. Based on Chris Antos INI.MAC (INI110.ZIP), but it has been modified to use the same syntax and functionality as the (undocumented) GetProfile* commands now provided by TSE/32.

Platform: TSE 2.5 (DOS) Only

Requirements: none

Download: Prof135.zip

SetCache - Tools to let macros cache settings and reload on demand

v1.0.5 (Jun 19, 2002)

Tools to allow macros to cache their settings in memory, but reload them from disk when necessary.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: none

Download: SCach105.zip

YACS - Yet Another Commenting System

v1.1.8 (Jun 19, 2002)

Allows line-based commenting for any programming language. Automatically uses the correct comment string for the type of file you are editing! Intelligently wordwraps comment blocks! Enter key continues comment from previous line! Joinline automatically deletes comment from next line before joining! Single key toggles comment/uncomment for a line or a whole block!

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: YACS118.ZIP

FilePal - Save file info based on type

Version: <19-Jun-2001>

Author: Jean Héroux, with some modifications by me.


Platform: TSE Pro 2.x/3.x/4.x

FilePal will save, for a given file, the current position and bookmarks, plus editing parameters Insert, AutoIndent, WordWrap, Margins, TabType, TabWidth, ExpandTabs, EOLType and EOFType.

Default values for these parameters may also be associated with extensions, directories and drives. Put a file on AutoTrack and the current position, parameters and bookmarks will be saved automatically each time the file is quit and restored on reloading. FilePal keeps track of any number of files, even if not loaded during the previous editing session. FilePal also supports automatic execution of specific macros linked to filenames, extensions, directories and drives.

This version fixes an issue with Long File Names.

Requirements: none

Download: FilePal.zip

OnlyOne - Force only a single copy of TSE to run in a Win32 system. All edited files get sent to that copy

Version: <17-Jun-2002>

Authors: Rick VanNorman, with updates by me.

Platform: TSE Pro 3.x, 4.x

"OnlyOne" allows only one copy of TSE to run on a windows 9x/NT/2000 platform. When you edit a file from outside of the editor, the single instance of TSE gets notified. It then opens the file, and brings itself to the foreground.

Updated to solve focus issues under Win98 and Windows 2000

It can also now work with programs that expect the editor to terminate only when you are finished editing a file. (When you quit the file, TSE stays open, but control returns to the calling application.)

Updated to work properly with the Becky Mail Client (allowing you to use TSE as Becky's message editor)

It also has the ability to autosave all files when it looses focus. See included OnlyOne.txt file.

Requirements: none

Download: OnlyOne.zip

TSE Macros - in Beta Testing

I am currently developing the following macros. Comments and bugreports especially welcome! They should be reasonably stable and documented, but please be especially careful with them. Remember, as indicated in the license for all of my macros, you use this software at your own risk. The software comes with no warrantee whatsoever, including the implied warrantees of merchantability or fitness for a particular use.

Because these are still in beta testing, some features and/or interfaces may change in future versions.

Archiver - Replacement save commands allowing for incremental backups

BETA: 0.9.6 (Aug 9, 2002)

System for creating incremental backups (file.000, file.001, etc.).

It will optionally store all backups in a central repository, maintaining a complete directory hierarchy containing incremental backups of every file you have edited, keeping up to 1000 of the most recent versions of each file.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: Arch096.zip

Gedcom - Edit GEDCOM genealogical databases

BETA: v0.9.2 (Jun 19, 2002)

Macro for editing GEDCOM genealogical databases.

Provides menus for browsing and editing individuals and families. You can add, remove and edit relations for a given individual or family by picking from a list.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: none

Download: GEDIT092.ZIP

MFind - Enhanced replacement for the Find built-in

BETA: v0.9.7 (Jun 19, 2002)

Enhances the built-in find command with the following new features:

  • Beeps when returning to the first file in a search through all files,

  • Can automatically set find options based on context (e.g. setting the 'lg' options when a block is marked in the current file),

  • Optional perl-style regular expressions

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: MFind098.zip

PerlMod - TSE Support for Perl modules (view module docs, edit modules by name)

BETA: v0.9.3 (Jun 19, 2002)

Allows you to edit or view the docs for a Perl module by name (e.g. Apache::Session, Net::FTP).

The name is picked up from the current line in the file you are editing, so all you have to do is move the cursor to a 'use' or 'package' statement in your Perl program and press a key to edit or view the module!

For editing, it will search for the module in a list of module directories on your system.

To view the docs for a module it will launch your web browser and navigate to the documentation on http://www.perldoc.com/ by default, although this also can be configured.

Also included is a simple Perl CGI script that you can install on your own web server to view documentation for the modules you have installed on that system.

Platform: TSE Pro 2.x/3.x/4.x

Requirements: The DOS version of TSE needs the 'Profile' package.

Download: plMod093.zip

Ringlets - Allow TSE to maintain more than one ring of files

BETA: v0.9.2 (Jun 19, 2002)

Ringlets lets you have multiple rings of files in TSE. It's like having multiple virtual editors inside of a single editing session!

You can use these rings for whatever purpose you like. Here are some common uses:

  • Load several large multi-file projects, and keep them all independent by putting each into a separate ring. Unlike using separate instances of TSE, files common to both projects will only be loaded into TSE once. A simple project loader macro (LoadProj) is included.

  • During an editing session you can create a temporary ring containing just a couple of frequently-used files so you can switch back and forth between them easily.

  • Newly edited files get filtered into their own ring based on file type (this is very powerful when used with the OnlyOne macro: for instance you could use TSE as your web browser's source viewer, and have all these files go into a separate ring).

  • You can create an Instant Filter: a new ring which contains a subset of files in the current ring, based on file type. For instance, you could create an Instant Filter to list all files in the current ring which have the extension ".txt".

Some other features:

  • Buffer lists can switch between displaying filename only, or the full path. Additionally, you can setup plugin macros to display a friendly name for certain files (e.g. the <title> of an HTML file). Plugins for HTML files and Perl modules are included.

  • Sort each ring's buffer list alphabetically. Tweak the order by moving individual files up and down in the list.

  • Editing variables (tab type, margins, etc) and the current directory are saved separately in each ring.

  • Files can be in more than one ring at once. The built-in virtual [all] ring contains every loaded file. The [unfiled] ring contains files that aren't in any other user-defined ring.

  • The Find or Replace 'all files' option is now limited to search only the files in the current ring. If you want to search every loaded file, you can use the [all] ring).

Platform: TSE 3.x only

Requirements: none

Download: Ring092.zip

UnixEdit - Edit files on a Unix Filesystem via your Windows copy of TSE.

BETA: v0.1.5 (Jun 19, 2002)

Type "e /etc/passwd" on your Unix system, and the file appears in your Windows TSE editing session!

This package consists of a shell script on the Unix side, and a watcher macro on the TSE side.

For this package to work you will need a samba share on the Linux/Unix system, and access to this share from the machine running TSE. You do not need to share the entire Unix filesystem; just a single directory will do.

Platform: TSE 3.x only

Requirements: none

Download: UnixE015.zip

Miscellaneous Bits and Pieces

My UI and various macros

Here you will find all of my .ui files, and the .s files that aren't yet polished enough for human consumption. Recently, with the beta release of my Ringlets macro (see above), there's not much here of interest anymore.

But this package does my own <ahem> unique set of keyboard mappings, for the brave of heart and the light of finger. You have been warned.

Download: magui138.zip


All of these packages were automatically bundled with my buildmac system, which consists of a (a) Perl script designed to run under Windows, (b) some configuration files, and (c) a profound absense of documentation.

The buildmac system makes my life a lot easier by pulling together the latest version of my macros from my live TSE macro directory, along with all the docs and support files for each package.

It conveniently pulls all the package meta information (package name, version info, description, etc.) from the source file; then it puts all this in the docs and the FILE_ID.DIZ file.

UPDATE: Buildmac is now over 20 times faster, after I removed some astonishingly stupid code!

Finally it zips all the packages up and rebuilds this HTML page using the same meta information.

You can download the buildmac system here. Use at your own risk.



With great power comes great number of macros