Или, например, ставить комментарии:
## Код:
```
MODULE SternSource;

(** 
   project   = "Stern Collection"
   subproject   = "Source code decoration
   organization   = ""
   contributors   = ""
   version   = "System/Rsrc/About"
   copyright   = "System/Rsrc/About"
   license   = "Docu/BB-License"
   purpose   = ""
   changes   = ""
   issues   = ""

**)

   IMPORT
      Stores, Dialog, SternDates, StdCmds, Models, TextMappers, TextModels, TextControllers, TextCmds;

   VAR
      dialog*: RECORD
         name*: ARRAY 100 OF CHAR
      END;

   (*23.05.2008 Сервисные процедуры для тегирования выделения*)
   PROCEDURE Write(t: TextModels.Model; beg: INTEGER; IN s: ARRAY OF CHAR);
      VAR w: TextModels.Writer; i: INTEGER;
   BEGIN
      w := t.NewWriter(NIL); w.SetPos(beg);
      FOR i := 0 TO LEN(s$)-1 DO w.WriteChar(s[i]); END;
   END Write;

   PROCEDURE TagThis(IN start, end: ARRAY OF CHAR);
      VAR t: TextModels.Model; w: TextModels.Writer; c: TextControllers.Controller; selBeg, selEnd: INTEGER; s: Stores.Operation;
   BEGIN
      c := TextControllers.Focus();
      t := c.text;
      IF c.HasSelection() THEN
         c.GetSelection(selBeg, selEnd);
         Models.BeginScript(t, "SternSource.Comment", s);
         Write(t, selBeg, start); 
         Write(t, selEnd+LEN(start$), end);
         c.SetSelection(selBeg, selEnd+LEN(start$)+LEN(end$)); StdCmds.Italic; StdCmds.Size(10);
         Models.EndScript(t, s);
      END;
   END TagThis;

   PROCEDURE Comment*;
   BEGIN
      TagThis('(* ', ' *)');
   END Comment;

   PROCEDURE CommentDate*;
      VAR datetime: ARRAY 50 OF CHAR;
   BEGIN
      SternDates.DateTimeToString(datetime);
      TagThis('(* '+datetime+' ', ' *)');
   END CommentDate;

   PROCEDURE CommentDev*;
      VAR datetime: ARRAY 50 OF CHAR; devname: ARRAY 50 OF CHAR;
   BEGIN
      SternDates.DateTimeToString(datetime);
      Dialog.MapString('#Stern:Developer', devname); 
      IF devname = 'Developer' THEN devname := '' END;
      TagThis('(* '+datetime+' '+devname+' ', ' *)');
   END CommentDev;

   PROCEDURE LogString*;
      VAR t: TextModels.Model; w: TextModels.Writer; c: TextControllers.Controller; selBeg, selEnd: INTEGER; s: Stores.Operation;
   BEGIN
      c := TextControllers.Focus();
      t := c.text;
      c.GetSelection(selBeg, selEnd);
      Models.BeginScript(t, "SternCmds.Log", s);
      IF selBeg = selEnd THEN
         Write(t, c.CaretPos(), "Log.String('Модуль: '); Log.Ln")
      ELSE
         Write(t, selEnd, "'); Log.Ln;");
         Write(t, selBeg, "Log.String('");
      END;
      Models.EndScript(t, s);
   END LogString;
   
   PROCEDURE InsertOpenSourceHeader*;
      VAR t: TextModels.Model; r: TextModels.Reader; c: TextControllers.Controller; b, selBeg, selEnd: INTEGER; s: Stores.Operation;
   BEGIN
      c := TextControllers.Focus(); t := c.text; r := t.NewReader(NIL);
      (*  Вставить после MODULE ...;  *)
      r.SetPos(0);
      REPEAT r.Read() UNTIL (r.char = ';') OR (r.eot); selBeg := r.Pos()+2;
      Models.BeginScript(t, "SternSource.OpenSourceHeader", s);
      Write(t, r.Pos(), 0DX+0DX+'(**'+0DX+09X+'project   = "Your Project"'+0DX+09X+'subproject   = "Subproject"'+0DX+09X+'organization   = ""'+0DX+09X+'contributors   = ""'+0DX+09X+'version   = "System/Rsrc/About"'+0DX+09X+'copyright   = "System/Rsrc/About"'+0DX+09X+'license   = "Docu/BB-License"'+0DX+09X+'purpose   = ""'+0DX+09X+'changes   = ""'+0DX+'   issues   = ""'+0DX+'**)'+0DX);
      TextCmds.find.find := '**)';
      TextCmds.FindFirst('');
      c.GetSelection(b, selEnd);
      c.SetSelection(selBeg, selEnd);
      StdCmds.Italic; StdCmds.Size(10);
      Models.EndScript(t, s);
   END InsertOpenSourceHeader; 

   PROCEDURE InsertMenu*;
      VAR f: TextMappers.Formatter;
   BEGIN
      f.ConnectTo(TextControllers.Focus().text); f.SetPos(0);
      f.WriteString('MENU "Your menu"'); f.WriteLn;
      f.WriteString('END'); f.WriteLn;
   END InsertMenu;

   PROCEDURE InsertMenuItem*;
      VAR f: TextMappers.Formatter;
   BEGIN
      f.ConnectTo(TextControllers.Focus().text);
      f.SetPos(TextControllers.Focus().CaretPos());
      f.WriteTab; f.WriteString('"item name"');(*  item name *)
      f.WriteTab; f.WriteString('""'); (* hot key *)
      f.WriteTab; f.WriteString('"command"'); (* command *)
      f.WriteTab; f.WriteString('""'); (* guard *)
   END InsertMenuItem;

   PROCEDURE InsertProcedure*;
      VAR t: TextModels.Model; w: TextModels.Writer; c: TextControllers.Controller; selBeg, selEnd: INTEGER; s: Stores.Operation;
   BEGIN
      c := TextControllers.Focus();
      t := c.text;
      c.GetSelection(selBeg, selEnd);
      Models.BeginScript(t, "SternSource.InsertProcedure", s);
      Write(t, selEnd, ';'+0DX+'BEGIN'+0DX+'END ;');
      Write(t, selBeg, 'PROCEDURE ');
      Models.EndScript(t, s);
   END InsertProcedure;
   
END SternSource.
```


Для, собственно, комментирования, используются команды SternSource.Comment, SternSource.CommentDate (вставка даты и времени комментария), SternSource.CommentDev (вставка имени разработчика, поставившего комментарий).

Остальные команды:

SternSource.LogString- вставляет комбинацию для вывода строки в журнал.
SternSource.InsertOpenSourceHeader- вставляет open-source заголовок после MODULE.
SternSource.InsertMenu- заготовка MENU...END.
SternSource.InsertMenuItem- заготовка для пункта меню.
SternSource.InsertProcedure- заготовка процедуры.