This is the third blog I am doing for my Software Development Practices subject.

Scintilla Text Editor, normally known as SciTE, is a light-weight text editor built for programmers and scripters. It supports syntax styling, bookmarks and some nice code editing tools such as block commenting (where you select an area of text and the editor will surround it with syntax-specific comment symbols such as /* and */).

The pain points that SciTE is probably trying to solve for its user base of programmers are:

  • Other simple text editing solutions (eg Notepad) do not support syntax styling
  • Other text editors that do have syntax styling do not allow the programmer to create a new style for a new syntax
  • Other text editors do not have tools for fixing indentation, doing automatic block commenting and changing file line-ending types
  • More comprehensive text editing solutions cost money and can suffer from feature bloat

SciTE’s main functions are:

  • The display of syntax styled source code files
  • Block commenting can be performed
  • Ability to read multiple line-ending formats (eg CR, LF, CRLF)
  • Able to fix incorrect indentation in source code files
  • Able to search (and replace) using regular expressions
  • Able to set bookmarks to certain lines

SciTE’s form is made up of the following:

  • Syntax styling properties are read from configuration files that are user-configurable
  • Syntax styling can be turned on and off or manually changed from one syntax to another
  • Runs on Windows and Linux
  • Displays multiple text files using tabs
  • Multiple windows can be opened if preferred
  • Code blocks can be “folded” (compacted into one line)
  • Displays code tips (small text pop-ups that describe a method’s arguments)

SciTE mostly solves the pain points that its users have. It is lightweight and has the bare necessities and a few niceties that any programmer or scripter wants in a text editor. It also provides an extreme level of customisability via its configuration files which let you create new syntax styling rules for languages that, perhaps, SciTE does not support by default. However, SciTE’s configuration files are where its worst failing is. Although allowing the user to change everything down to the position that the SciTE window will open at on start up, it does so through a very hostile interface: its own text editor.

Configuring an entire program via a text configuration file is difficult: you must learn the format and search through it manually, looking for the setting you want to change. If I were the one to write SciTE, I would have put effort into putting a real GUI behind the program’s configuration, especially the syntax styling. A similar editor to the one that the IDE Eclipse provides would be appropriate, where you can change keyword colours and tab settings. It would obviously need to be extended to allow the definition of a new syntax: a UI would need to be created to allow the setting of syntax rules like keywords and block delimiters.

Overall, SciTE does solve the pain points of its users. It does provide a lightweight text editor that has syntax styling and some code specific features like indentation fixing. Its configuration methods, however, leave a lot to be desired in terms of usability. It can be difficult to configure new syntaxes or change existing ones using SciTE’s text file based configuration approach.