Version 2.1
Released September 1, 2007

This version primarily seeks to implement some ideas I gathered about
writing HTML. The new pasting capability is tailored for either HTML or
text — the latter snippet type being applicapable to templates and prose
generally. HTML support already included checking syntax with the Tidy
utility, as well as converting between Markdown and HTML. Fixes and
improvements are documented below.


Fixed Section Break (Control+Enter) and Replace (Control+R) commands not
handling tokens correctly.

Improved compatibility with Dragon voice dictation software. Made EdSharp
change the current directory to that of a file opened by the user.

The Open Previous setting determines whether files open at the end of the
previous EdSharp session are automatically opened at the start of the next
one. The default is No in this version, but it was Yes in version 2.0 when
this setting was reserved but not actually implemented. Since upgrading
EdSharp generally does not replace installed settings, your setting may be
Yes inadvertently. If you would prefer that EdSharp not open files
automatically in this way, you can press Alt+Shift+C for
Configuration Options, then Alt+O for the OpenPrevious edit box and N for
its value. Alternatively, create a fresh configuration file by pressing
Alt+Shift+M for Manual Options, Alt+Shift+D to delete the EdSharp.ini file,
Y to confirm, and Alt+F4 to close EdSharp. The next time you load EdSharp a
custom configuration file will be created with default values.

This version increases word processing functionality by adding bullet
justification in addition to left, center, or right (Alt+Shift+J).
Superscript and subscript support is also added. Press Alt+Shift+6 (think
of a caret symbol) to change the virtical alignment of text. Press
Control+6 to go to the next change in baseline, or Control+Shift+6 for the
previous one. The Query Styles command (Alt+Slash) says current styles
(bold, italic and/or underline), as well as justification and baseline

The Web Download command, Alt+Shift+W, lets you pick one or more files to
download from a page whose address you specify. If Internet Explorer is
open, EdSharp uses the value in its address bar as the default. Each item
of the resulting checked listbox shows both the clickable text of the url
and its target file name. Press Spacebar to toggle the checked state of
an item. After picking files, you are prompted for the target folder on
disk. If a file with the same name already exists, a unique name is created
by adding a numeric suffix, e.g., page_01.htm, page_02.htm, etc.

A listbox control of the .NET Framework does not support multiple letter
navigation, so each letter typed jumps to the next item starting with that
letter. To make navigation more flexible and efficient, particularly in a
listbox with many items, EdSharp adds the following features to a list based
dialog. Control+J prompts for text within an item, going to the first match
if a new search, or the next match if the previous value is accepted. Alt+J
goes to the next match without prompting for a value. In a checked listbox,
such as the Web Download dialog, Control+A checks all items, Control+Shift+A
unchecks them, and Shift+Space reads which are checked. The item with focus
when the dialog is closed (but not canceled) becomes the current item the
next time that the same list dialog is invoked. The Jump value of that
dialog is also remembered.

New commands support development of web pages. Press Control+Shift+Period
(think of the > symbol) to go to the closing tag of an HTML element, or
Control+Shift+Comma for the opening one. A documentation section
describes the snippet capability as follows.

Pasting Snippets Press Alt+S to save all or selected text to a file that may
be conveniently pasted into other documents. You may give the file any
name, except that it should have a .txt extension. It is saved in a
of the EdSharp data folder. Each programming compiler or interpreter may
have its own set of snippets. The subfolder name is the same as the current
value of the Pick Compiler command, Control+Shift+F5. If no compiler has
been chosen, the name "Default" is used. Press Alt+V to pick one of the
available snippets and paste it into the current document. You can manage
snippet files with the View Snippet Folder command, Alt+Shift+V, which opens
Windows Explorer in the subfolder containing snippet files.

A snippet may be either literal or an interpreted type. A literal snippet
is pasted completely. An interpreted type is seperated into an initial
header line and remaining lines as its body. The header line contains
keywords, in lower case, that control how EdSharp processes the snippet. At
present, two interpreted types are defined: html and text. The type
keyword must be the first word on the header line, and thus the first word
of the snippet file.

The first body line of an HTML snippet is the name of an HTML tag.
Subsequent body lines are attributes of the tag. An optional default value
can follow the attribute name, seperated by an equals sign (=).
Here is an example for the anchor tag:

html phrase

The "phrase" keyword tells EdSharp that the tag may be embedded in a
paragraph, rather than creating a block with line breaks before and after.
Another keyword, "empty," would tell EdSharp not to add a closing tag like
</a> when pasting (e.g., for the <br> tag).

EdSharp pastes only those attributes that have values greater then zero in
length as part of the opening tag. To include an attribute with essentially
no value, enter a space character for it in the dialog. If text is selected
when pressing Alt+V, it is surrounded by the opening and closing tags, and
the cursor is placed afterward. If there is no selection, the cursor is
placed between the opening and closing tags.

Over 100 HTML snippets are distributed with EdSharp, including common
attributes used by the tags. Snippet files may be modified or added.
Upgrading EdSharp does not overwrite snippet files with the same names.

With the text type of snippet, EdSharp pastes the whole body after making
possible substitutions controlled by a keyword called "form." This lets you
embed variables or constants in the body. A variable has surrounding
percent signs and an equals sign between the name and default value. For
example, the variable %City=%Silver Spring% means a variable named City with
a default value of Silver Spring. EdSharp creates a dialog that prompts for
the value of each variable it finds in the snippet body. It then replaces
the variable references with the values entered.

Certain constants are also defined: %Date% for the current date, %Time% for
the time, %UserName% for the Windows user name, %UserFirstName% for the
first part of that name, and %UserLastName% for the second part, if any.
Date and Time formats may be customized as EdSharp configuration options,
using the DateTime formatting syntax of the .NET Framework, explained at
If a snippet header contains the "caret" keyword, EdSharp looks for a double
caret sequence (^^) in the body, and positions the cursor (think of blinking
caret) in that location after pasting. An example text type snippet is
called Letter.txt, located in the Default snippet folder. Its content is as

text form caret

Dear %Customer=%:

Thank you for your purchase of %Product=Super Widget%. ^^


EdSharp notices that this is a text type snippet because of the first word
of the file. It finds two other keywords on the header line: form and
caret. It creates a dialog with two edit boxes, prompting for the Customer
and Product — defaulting to Super Widget. It substitutes the values
entered, as well as date and user name constants. After pasting, the cursor
is positioned after the first sentence.