This is an old revision of the document!
Table of Contents
SlyEdit
SlyEdit is the second full-featured full screen editor for Synchronet, written by nightfox
in JavaScript. SlyEdit can run in one of two styles, to mimic the look & feel of IceEdit or DCT Edit, two popular BBS message editors from the 1990s. The style is specified by a command-line argument. SlyEdit also supports customization of options via a configuration file and colors via theme files.
SlyEdit will recognize the user's terminal size and set up the screen accordingly.
Thanks go out to all the sysops and users who have reported bugs, made suggestions, and helped test SlyEdit, including the following people:
- Access Denied of The Pharcyde (pharcyde.org) for testing the newer versions and for his input on various features, including message quoting and cross-posting
- Psi-Jack of Decker's Heaven (bbs.deckersheaven.com) for providing an example of implementing support for PageUp, PageDown, and function keys
- echicken of Electronic Chicken (bbs.electronicchicken.com) for his idea for looking up the original author of a message after a user changes the “To” name when replying to a message
- Nick of Lightning BBS (lightningbbs.dyndns.org) for testing early versions
Minimum Synchronet version
SlyEdit supports Synchronet version 3.14 and newer. However, version 3.16 (from at least July 5, 2015) or newer is recommended. The reason is due to the following changes in Synchronet 3.16 builds:
- May 12, 2013: A change was made that lets SlyEdit correctly find author's initials to use on quote lines when replying to a message in a public message area.
- June 22, 2015: A change was made that allows tag lines to be placed below the user's signature (if a user has a signature). If you are running a Synchronet 3.16 build from before June 22, 2015, tag lines will not be included in the message. For version 3.15 and earlier of Synchronet, the tag line will appear above the user's signature (if the user has a signature).
- July 5, 2015: Synchronet now includes a 7th line in the MSGINF drop file that specifies the full path & filename of the tagline file. SlyEdit will write the user's chosen tagline to the tagline file with that name if that line exists in the MSGINF file.
The latest successfully built Synchronet binaries can be downloaded from Vertrauen (sbbs_dev.zip for the Windows binaries or sbbs_dev.tgz for the Linux binaries).
Getting SlyEdit
As of Synchronet 3.16, SlyEdit is included with Synchronet. The latest version of SlyEdit can also be acquired by browsing to the exec directory in the Synchronet git
repository and download the SlyEdit .js files and the SlyEdit .cfg and SlyEdit_Taglines.txt files from ctrl. Additionally, there is some SlyEdit documentation in text file format in the docs directory.
Installation
Copy the .js files to the exec
directory and the .cfg files into the ctrl
directory. If you make any changes to the SlyEdit configuration file (SlyEdit.cfg) or color theme files, it is recommended that you save your modified configuration/theme files to the mods
directory so that any modifications you make to them won't be accidentally overwritten when updating the Synchronet files from the Synchronet git
repository.
Configuration with Synchronet
Make sure any or all of these configurations (as desired) are in SCFG->External Programs->External Editors. Note that the ARS requirements string is “ANSI AND COLS 80”. This means that the user's terminal must support ANSI and have a width of at least 80 columns.
For IceEdit style:
Name SlyEdit (Ice Style) Internal Code SLYICE Command Line ?slyedit %f ICE Access Requirements ANSI AND COLS 80 Intercept I/O No Native Executable No Use Shell to Execute No Record Terminal Width Yes Word Wrap Quoted Text Yes, for 80 columns Automatically Quoted Text All Editor Information Files QuickBBS MSGINF/MSGTMP Expand Line Feeds to CRLF Yes Strip FidoNet Kludge Lines No BBS Drop File Type None
For DCT Edit style:
Name SlyEdit (DCT Style) Internal Code SLYDCT Command Line ?slyedit %f DCT Access Requirements ANSI AND COLS 80 Intercept I/O No Native Executable No Use Shell to Execute No Record Terminal Width Yes Word Wrap Quoted Text Yes, for 80 columns Automatically Quoted Text All Editor Information Files QuickBBS MSGINF/MSGTMP Expand Line Feeds to CRLF Yes Strip FidoNet Kludge Lines No BBS Drop File Type None
To have SlyEdit choose either IceEdit or DCT Edit style randomly:
Name SlyEdit (Random Style) Internal Code SLYRAND Command Line ?slyedit %f RANDOM Access Requirements ANSI AND COLS 80 Intercept I/O No Native Executable No Use Shell to Execute No Record Terminal Width Yes Word Wrap Quoted Text Yes, for 80 columns Automatically Quoted Text All Editor Information Files QuickBBS MSGINF/MSGTMP Expand Line Feeds to CRLF Yes Strip FidoNet Kludge Lines No BBS Drop File Type None
SlyEdit configuration files
See slyedit
for detailed information about SlyEdit's configuration file & color theme files.
Upgrading from previous versions
The following is a list of changes and important notes for each version, if you are upgrading from a previous version of SlyEdit:
New in version 1.80
New configuration settings have been added in SlyEdit.cfg:
Setting | Description |
---|---|
allowColorSelection | Whether or not to let the user change the text color |
saveColorsAsANSI | Whether or not to save message color/attribute codes as ANSI (if not, they will be saved as Synchronet attribute codes) |
The TextEditColor setting has been removed from the color theme configuration files.
New in version 1.71
There is a new setting in SlyEdit.cfg, allowSpellCheck, which specifies whether the spell check feature is allowed. Valid values are true and false; it defaults to true if not specified. You might want to disable spell check if, for instance, the spell check feature causes an “out of memory” error on your system.
New in version 1.68
Each paragraph of text written in a message is now saved as one long line so that they can be wrapped appropriately according to the terminal/reader width (which should work online as well as in offline readers). Also, message uploads are now supported by typing /UPLOAD (or /UL) on a line by itself (the uploaded message will replace any message written into the editor). Also, now honors the SUB_ANON and SUB_AONLY flags for the sub-boards when cross-posting so that the “from” name is “Anonymous” if either of those flags enabled.
New in version 1.67
Version 1.67 added the ability to change the message subject. Note that if using a Synchronet 3.17c development build, this requires a build from July 21, 2019 or newer (that build added the ability to use the RESULT.ED file, even if the editor is configured for QuickBBS MSGINF/MSGTMP).
1.66 update
For dictionaries with localized spellings, the filenames can have a “-supplemental” at the end of their name before the extension if they only contain words that are unique to a particular region that don't exist for all regions. Also, dictionary filenames can just contain the language without a localization if they contain words common to all regions. For example:
Filename | Description |
---|---|
dictionary_en.txt | General English dictionary with spellings common to all regions |
dictionary_en-US-supplemental.txt | English word spellings only specific to the US |
dictionary_en-US.txt | Full English US dictionary |
New in 1.64
Version 1.64 added a spell checker feature. There is a new option for SlyEdit.cfg, dictionaryFilenames, which is a comma-separated list of filenames. The filenames are in the format dictionary_<language>.txt, where <language> is the language name. For dictionaryFilenames, you can also just specify the language names if you want. The dictionary filenames will be looked for in sbbs/mods, sbbs/ctrl, and then the directory where SlyEdit.js is located.
New in version 1.63
This version allows using the full width of the terminal for message text. After upgrading to this version, if you are using a Synchronet build from April 13th, 2019 or later, ensure that the “Record Terminal Width” setting in SCFG is enabled for SlyEdit. This helps ensure that Synchronet re-wraps message text for readers if the author used a different terminal width than the reader.
New in version 1.34
This version includes a new configuration option in SlyEdit.cfg for Ice-style colors (in the [ICE_COLORS] section): menuOptClassicColors. If this option is set to false, then new colors will be used for Ice-style menu options. If this is set to false, then the classic Ice-style menu option colors will be used.
New in version 1.33
In this version, taglines can now be optionally prefixed with some text and/or surrounded by double quotes. Also, the list of taglines can optionally be shuffled before being displayed to the user. Three new configuration settings have been added in this version to configure these options:
Setting | Description |
---|---|
taglinePrefix | Some text to be added to the front of a tagline that is selected from the user. The intention of this setting is to differentiate taglines from the rest of the message. This defaults to the string “... ” (3 dots and a space). If desired, this can be set to a blank string (nothing after the = ) - for instance, if you only want to put double quotes around text lines, you could set this to blank and enable the quoteTagLines setting. |
quoteTaglines | Whether or not to put selected taglines in double quotes. This defaults to false. If you like taglines to have double quotes and no prefix, you can set this to true and set taglinePrefix to a blank string (nothing after the = ). |
shuffleTaglines | Whether or not to shuffle (randomize) the list of taglines displayed to the user for selection. |
New in version 1.32
A new color setting has been added, listBoxItemHighlight, which is used for the currently selected item in a list box.
The color setting txtReplacementList has been changed to listBoxItemText. This color applies to items written inside any list box, including the list of text replacements and the list of tag lines.
Taglines: Users can now (optionally) select a tagline to append to their message upon saving their message. Users can configure whether or not they want to use taglines in their user settings, which is also a new feature in this version of SlyEdit (see the paragraph below).
New configuration settings have been added in SlyEdit.cfg:
Setting | Description |
---|---|
enableTaglines | This serves as a default for user settings for whether or not to enable the option to add a tagline to their message upon saving the message. |
tagLineFilename | This specifies the name of a text file where tag lines are stored. By default, it is SlyEdit_Taglines.txt. |
allowUserSettings | Whether or not to allow users to configure their user settings. |
User settings: Users can now configure their own user settings in this version. Settings include whether or not to use tag lines, whether or not to quote messages using the original author's initials, and whether or not to indent quoted lines with initials.
The configuration settings useQuoteLineInitials indentQuoteLinesWithInitials in SlyEdit.cfg now serve as defaults for user settings rather than being used for everyone.
New in version 1.29
A new “text replacements” (AKA macros) feature has been added. This feature lets you (the sysop) define words to be replaced with other text. This feature can be used, for instance, to replace commonly misspelled words with their correct versions or to replace swear words with less offensive words as the user types a message. For more details, see the section regarding text replacements in SlyEdit's readme file.
The color settings crossPostBorder and crossPostBorderText have been renamed to listBoxBorder and listBoxBorderText. crossPostBorder and crossPostBorderText will still work, but if listBoxBorder and listBoxBorderText are used in your theme configuration files, those will be used instead.
Also, the following color setting has been added (for both the DCT-style and Ice-style theme files):
Setting | Description |
---|---|
txtReplacementList | The color to use for the text replacements in the text replacement list. This option was added in version 1.29. |
New in version 1.28
New general color settings (for both the DCT-style and Ice-style theme files):
Setting | Description |
---|---|
msgWillBePostedHdr | The color to use for the text “Your message will be posted into the following area(s)” text when exiting SlyEdit |
msgPostedGrpHdr | The color to use for the group name header when listing the message's posted message areas when exiting SlyEdit |
msgPostedSubBoardName | The color to use for the message sub-boards when listing the message's posted message areas when exiting SlyEdit |
msgPostedOriginalAreaText | The color to use for the text “(original message area)” when listing the message's posted message areas when exiting SlyEdit |
msgHasBeenSavedText | The color to use for the text “The message has been saved.” when exiting SlyEdit |
msgAbortedText | The color to use for the Message Aborted text when exiting SlyEdit |
emptyMsgNotSentText | The color to use for the Message Not Sent text when exiting SlyEdit |
genMsgErrorText | The color to use for general message error text when exiting SlyEdit |
New in version 1.20
Version 1.20 added a cross-posting feature, and there is a new configuration setting and some new color settings for cross-posting. Also, starting with version 1.20, you can put your customized SlyEdit configuration file (SlyEdit.cfg) and color theme files in the mods
directory so that they won't be accidentally overwritten when updating the Synchronet files from the Synchronet git
repository.
New setting for SlyEdit.cfg:
Setting | Description |
---|---|
allowCrossPosting | Whether or not to allow cross-posting. Valid values are true and false. This setting is enabled by default. |
New color settings (for both the DCT-style and Ice-style theme files):
Setting | Description |
---|---|
crossPostBorder | The color to use for the border of the cross-post area selection box |
crossPostBorderText | The color to use for the top border text of the cross-post area selection box |
crossPostMsgAreaNum | The color to use for the message group/sub-board numbers in the cross-post area selection box |
crossPostMsgAreaNumHighlight | The color to use for the highlighted (lightbar) message group/sub-board numbers in the cross-post area selection box |
crossPostMsgAreaDesc | The color to use for the message group/sub-board descriptions in the cross-post area selection box |
crossPostMsgAreaDescHighlight | The color to use for the highlighted (lightbar) message group/sub-board descriptions in the cross-post area selection box |
crossPostChk | The color to use for the checkmarks for the enabled message sub-boards in the cross-post area selection box |
crossPostChkHighlight | The color to use for the highlighted (lightbar) checkmarks for the enabled message sub-boards in the cross-post area selection box |
crossPostMsgGrpMark | The color to use for the current message group marker character in the cross-post area selection box |
crossPostMsgGrpMarkHighlight | The color to use for the highlighted (lightbar) current message group marker character in the cross-post area selection box |
New in version 1.18
* Important: If you use Digital Distortion's Message Lister on your BBS, then you must update Digital Distortion's Message Lister must to at least version 1.36 in order for message quoting with author's initials to work properly when replying to a message from Digital Distortion's Message Lister. The latest version of the Digital Distortion BBS doors & add-ons can be downloaded from the Digital Distortion BBS Doors and Tools page.
A feature has been added to allow quoted lines with author's initials to be indented by a space. It is disabled by default. To enable that option, add the following line in SlyEdit.cfg in the [BEHAVIOR] section:
indentQuoteLinesWithInitials=true
That option can also be set to false to disable it.
New in version 1.17
Starting with version 1.17, when replying to a message, quoted lines from the previous message will be prefixed with the last author's initials by default. If desired, this behavior can be disabled by adding the following line in the [BEHAVIOR] section of SlyEdit.cfg:
useQuoteLineInitials=false
When disabled, SlyEdit will quote message lines as before, prefixing them with “ > ” as was done in IceEdit, DCT Edit, and other editors of the early-mid 1990s. Since many users participate in public message areas, it is recommended to let SlyEdit add the last author's initials to quote lines in order to make it easier for other readers to identify who wrote which parts and make it easier to follow the conversation. That option can also be set to true in SlyEdit.cfg to enable it.
New in version 1.16
As of version 1.16, the configuration files may be placed in the ctrl
directory if desired. This change was made for SlyEdit's inclusion in the Synchronet git
repository. The .js files can be placed anywhere, but for the standard Synchronet installation from the git
repository, the .js files will be in the exec
directory.
New in version 1.15
In version 1.15, the configuration setting splitLongQuoteLines was removed and replaced with the reWrapQuoteLines setting. Refer to the list of settings above for its description.
Also added the following configuration options and capabilities (refer to the list of settings above for their descriptions):
- add3rdPartyStartupScript
- addJSOnStart
- add3rdPartyExitScript
- addJSOnExit
New in version 1.08
Starting with version 1.08, the “Expand Line Feeds to CRLF” for SlyEdit in SCFG should now be set to Yes. This option enables Synchronet to save messages properly, regardless of whether Synchronet is running in Windows or a *nix system. The SCFG examples above reflect this option. Enabling this option fixes problems with line wrapping that was seen on Linux Synchronet systems when the messages were sent across some networks to other BBSs. Thanks goes to Access Denied, sysop of The Pharcyde, for helping to test this.
Also, in version 1.08, two new configuration settings were added to the main configuration file (SlyEdit.cfg) in the BEHAVIOR section (refer to the list of settings above for their descriptions):
- userInputTimeout
- inputTimeoutMS
Note that the sysop is now always exempt from the input timeout.
In version 1.13, the setting splitLongQuoteLines was added to the main configuration file (SlyEdit.cfg) in the BEHAVIOR section. Refer to the list of settings above for its description.
New in version 1.07
Starting with version 1.07, the option “Expand Line Feeds to CRLF” in SCFG should now be set to Yes. Refer to the example configuration near the top of this article.