🏠

The Semware Editor

Context

About the editor

The editor's key feature is, that its makers created a procedural programming language of editing commands, wrote the editor in that language, and made the language available to users. This makes the editor itself quite extendible and adaptable, and allows for creating text oriented tools more easily and quickly than with a generic programming language.

The programming language is called the Semware Application Language (SAL) and is referred to as the editor's macro language. Up to and including TSE 4.4 it is well documented in the editor's internal Help system, which is a delight to use. The language is compiled into intermediate code that is interpreted by the editor's core, and comes with a good interactive debugger.

Alas, while TSE is still being maintained and small developments sporadically still occur, for a long time it has not been developed to keep up with modern requirements. Despite lots of small functional changes being added afterwards, its built-in documentation is mostly still that of its last commercial release of TSE Pro v4.4 in 2005. (I can offer a glimmer of hope for a future improvement.) There have been lots of bug fixes since 2005, but in later years not every known bug has been fixed any more, though most still have been. From 2005 to 2021 there was a closed beta of TSE. Just before 2022 TSE became publicly available, with a new license that grants broad permissions for its use and distribution and disclaims any warranty and liability. The former beta brought non-beta users 15 years of bug fixes and small improvements. The editor still does not natively support Unicode and paths/files/strings longer than 255 characters, and has other, more minor functional and programming language limitations.

Using its macro programming language users have written extensions for its standard functionality (including Unicode extensions), as well as tools to perform both small and major editing tasks.

About tools and extensions

My tools and extensions

can be found here.

Nowadays when I create and maintain tools and extensions I default make them compatible with Windows TSE Pro v4.0 upwards for both the GUI and Console versions of the editor, unless stated otherwise, and I do not support them for older versions of TSE.

Other people's tools and extensions

can be found on SemWare's macro download page.

On the bright side, those macros are distributed as source code too.

On the dark side, those macros

  • are old (January 2012 and older),
  • have not been maintained,
  • might be for old versions of TSE Pro,
  • have a wide range of quality.

Though some of those old macros may not compile in newer TSE versions because of now obsolete statements, the ones that do have a reasonable chance of being upwards compatible.

When browsing those ancient macros it might be good to know TSE's history.

Editor history

Windows editor history

TSE Pro v2.5
and below were 16-bit editor versions. Macros written for it might contain 16-bit-specific code that will not run on 32-bit and 64-bit computers and operating systems. TSE Pro v2.5 ran in Dos, and in Windows versions up to and including Windows 98.

TSE Pro v2.6
and above were 32-bit editor versions.

v2.6 was a beta release, with lots of quirks.

TSE Pro v2.8
was the first stable 32-bit editor version. Macros written for TSE Pro v2.8 and above are likelier to be compatible with current TSE versions.

TSE Pro v3.0
added undo/redo capability and lots of other features.

TSE Pro v4.0
added a GUI variant of the editor, besides still fully supporting its old Console variant. For the GUI and Console variants of the editor each has its own executable, g32.exe and e32.exe respectively.
Older TSE versions were all Console programs, meaning the editor runs in a Windows console, just like the cmd prompt.
The GUI version of the editor adds better Windows integration.
The main TSE GUI-specific features are:
  • TSE runs in its own window with GUI window properties. The window is resizable by dragging the borders.
  • Fonts can be modified from the editor.
  • It has a user-friendly Close button, that no longer just aborts the editor, but now asks to save unsaved files, and can be cancelled if you want to check them first.
  • A vertical bar cursor. (Optional)
  • ANSI support for ANSI-compatible fonts!
    The GUI's default font is "Courier New", which is ANSI-compatible.
    ANSI, formally known as Windows-1252 and CP1252, is a character set that is natively supported by Windows, which gives TSE much better compatibility with other software and people.
    ANSI fully supports the alphabets of these languages: Danish, Dutch, English, Finnish, French, German, Hungarian, Icelandic, Indonesian, Italian, Norwegian, Portuguese, Spanish, Swedish.
  • Alas, ANSI does not support line drawing.
Newer extensions sometimes rely on the advantages of the new GUI features, making them incompatible with the Console version.

TSE Pro v4.2
added small functional and programming language features. My favorite is the programmatic access to TSE's colors: Instead of being limited to 16 colors with unchangeable values, macro programmers could now set 16 foreground colors and 16 background colors, the values of which are changeable 24-bit RGB colors. It is hard to do, but this also allows for tricks to temporarily display more than 32 colors concurrently, up to tens of thousands.

TSE Pro v4.4
added small functional and programming language features. The most visible new feature was TSE's ability to show line numbers. Of the new macro language features a substantial amount was cosmetic bloatware, allowing us to use one command for what already could be programmed with old commands.

TSE Pro v4.40.5 - v4.41.45
were closed beta releases, only available to invitees, with a separate mailing list for comments and feedback. The changes that happened during that period can be read back in an installed TSE's read.me file.

TSE Pro v4.41.46 and upwards
are public releases.
As of TSE v4.42 all references to being a beta version have been removed. Because new releases are no longer broadly tested by beta users any more, we have all become its unofficial beta users, so the public releases do carry some higher risk of errors.
These releases come with a new license that makes them broadly usable and distributable and disclaims any warranty and liability.
The built-in Help system is still almost completely that of TSE Pro v4.4 (2005). Newer features, changes and bug fixes are described in the installed TSE's read.me file.

About Linux TSE

There is a Linux TSE

As of Linux TSE v4.41.35 it supports ANSI and the Unicode and Keys extensions, which in my opinion makes it work OK.

That said, there are some things that do not work in Linux TSE.

As a Windows user I mostly notice its lack of support for some Alt and Ctrl key combinations that I am used to from Windows. I think this does not work because Linux TSE is a console application, and that this makes it unlikely to be fixable.

As a macro programmer I painfully notice that TSE's debugger malfunctions in Linux, and that I therefore have to revert to old-school methods for debugging.

WSL v1

Linux TSE is not compatible with the Windows Subsystem for Linux version 1, because TSE is a 32-bit program.

WSL v2

The latest Linux TSE is compatible with "WSL2" with one known exception:

From a WSL distribution Linux TSE cannot browse a Windows folder. It can open a Windows file using its fully qualified name. For example, from Linux TSE you cannot browse to see what files are in the folder /mnt/c/Windows, but you can open a file like /mnt/c/Windows/win.ini by providing its fully qualified name yourself.

One WSL file-browsing work-around: You can start the Windows version of TSE from a WSL distribution, for example by executing /mnt/c/Users/Carlo/Tse/g32.exe

Another WSL file-browsing work-around: You can access a WSL distribution's file system from a Windows version of TSE, for example by opening the root directory \\wsl$\Debian\ . The 4th backslash is mandatory too!

Default my tools and extensions are not intended to be compatible with Linux TSE, unless stated otherwise. Only some are, though those include some of the most useful ones.


These webpages are created and maintained with The SemWare Editor Professional