Archived firstobject XML Editor Release Notes


firstobject XML Editor Release 2.2

July 26, 2007  

Release 2.2 introduces programming with FOAL and numerous fixes and enhancements. The following list indicates changes from release 2.1, many of which have also been mentioned and further explained for the interim Beta releases in the firstobject XML Editor Comments.

  • FOAL programming language, see firstobject Access Language
  • Generate Program (e.g. Sum) and run it inside the editor and watch it process your document
  • configuration has been moved out of the registry into a settings.xml file in your user Application Data folder
  • offer to reload externally modified files when you switch to the editor
  • sense read-only files and prompt on Save *Thanks Joachim for specific feedback
  • more efficient memory usage for format align and indent (especially helpful for large documents over 100MB)
  • help (F1) is now a docking window with hyperlinks and syntax coloring (instead of an XML document)
  • the MSXML Validate hotkey has been changed to Alt+F7
  • Find/Replace dialog improvements for more intuitive Cancel/Close button and editbox behavior
  • fixes: Find/Replace dialog: find from end of document, and move past replaced text
  • fix: horizontal scrollbar flashing annoyance which occured with certain line length combinations in the editor when word-wrap was off and in the tree view
  • fix: vertical scrollbar visibility in tree view *thanks W. Jordan for the clear steps to reproduce this
  • fix: now uses the standard attribute path elem/@attrib format (instead of elem@attrib)
  • fix: missing vertical scrollbar *Thanks W. Jordan for exact steps to reproduce
  • fix: IME and Chinese locale tree customizations

Advanced CMarkup Developer License

The following items pertain to Advanced CMarkup Developer:

  • An enhanced CMudCtrl Class with more text formatting and SetMultiObjectContent method supporting the onboard help
  • CDataEdit Class fixes for text search, undo, scrollbar, IME


firstobject XML Editor Release 2.1

October 19, 2006

Release 2.1 includes tree customizations, Go To Line, MSXML validate, plus a couple of minor fixes.

  • Tree Customizations (select Preferences in the Tools menu) to specify attributes or child elements to display with the element tag for better navigation
  • Go To Line (Ctrl+G, or Edit menu), although the editor still does not display line numbers, this is a way of finding a line
  • MSXML Validate (F9, or Tools menu) uses MSXML4, displays result in status bar and positions to error in document
  • fix: tree behavior on right, left, + and - keys
  • fix: tree right-click menu could be in the wrong location on a multiple monitor setup
  • fix: clipboard status messages number of bytes


firstobject XML Editor Release 2.0

February 12, 2006

Release 2.0 with the new tree control is finally ready. Previously, the tree was a Windows common control that on large documents could take significant time to load up large numbers of sibling elements. The new tree control (CMarkupTreeCtrl) is a "virtual" control drawn from a CMarkup object such that the tree does not load any data. The new tree also shows element and attribute values. Also new is the ability to perform the Convert Char Ref and Unicode Char functions on whole selections of text rather than individual characters. Plus, output from C++ code generation and so forth is now displayed in a more intuitive dialog bar rather than the status bar.

  • new tree shows values and is always fast
  • new output bar to view read-only output (instead of the status bar), press ESC to hide
  • Find/Replace dialog now has Unicode edit box and message boxes
  • Unicode Char generates description all multiple characters in selection rather than just one
  • Convert whole selection from numeric reference with Convert Char Ref
  • toggle and view text view from the View menu
  • Copy/Paste in right-click menu
  • fix: crash on Find when cursor at end of document
  • fix: crash on cancel from Save unavailable conversion character set dialog
  • fix: support for IME when different from system default code page on NT/XP
  • fix: non-Windows-1252 keyboard bug and Undo hot key was being triggered as part of alt+u on Polish keyboard *aided by Rafal
  • fix: end of document scrolling issues (mid-page, and blank last page on reduced document)
  • fix: syntax coloring for non-ASCII tag names

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • The public "Can" functions, CanCut CanCopy CanPaste CanUndo and CanRedo, were added to support external UI updates such as Cut/Copy/Paste in the editor's right-click menu
  • fix: tab key handling with single-line edit box functionality (CreateEditBox)


firstobject XML Editor Release 1.7

September 30, 2005

This very minor release re-enables the Encoding menu feature and adds support for the HTML encoding setting.

  • HTML encoding is supported in an <html> rooted document inside the <head> element with a tag such as <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  • fix: Tools Encoding menu item


firstobject XML Editor Release 1.6

August 17, 2005

Edit XML without a single root element and even HTML! Plus this release has many usability enhancements based on your feedback like hotkeys and formatting/indenting for partial documents.

  • format/indent markup documents containing well-formedness errors, put attributes on separate lines, and it now keeps selection location instead of resetting to top
  • due to CMarkup 8, parse navigate and format XML that is incomplete, without a single root element, or contains well-formedness errors, as well as HTML
  • set preferences in Tools Preferences for indent, Word Wrap, and file types of Open and Save As dialogs
  • file name in title caption now has full path and an asterisk when modified
  • hot keys for Indent (F8) and Align (Shift+F8)
  • indent and unindent selected lines by one tab stop (not the same as formatting) using Tab and Shift+Tab
  • view tree/text focus restored on return to application, and toggle between tree and text with View Toggle Focus F4
  • Convert Char Ref on alternative standard Unicode representation with plus sign e.g. U+20AC
  • simpler syntax coloring, tag names are blue the same as angle brackets
  • fix: horizontal scroll and End key in non-word-wrap
  • fix: Format and Indent no longer affect entity and character references
  • fix: Syntax Color Clip Bug *thanks Thomas S. Trias
  • fix: Delete key in tree

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • CreateEditBox method for using as single line UTF-8 edit control
  • Unicode compile


firstobject XML Editor Release 1.5

December 5, 2004

Non-Unicode encodings are now supported and the new encoding features offer more choice and versatility than most text editors. You can select from a list of available character sets to set the XML Declaration for save and to override the automatic character set handling from the Open dialog. There are several other new features as well.

  • set document encoding from the Tools menu. This creates or modifies the XML Declaration at the top of the document allowing you to select from a list of OS supported code pages. When the file is saved it is automatically saved to the encoding specified in the XML Declaration
  • Open dialog Encoding drop-down list allows you to force the encoding used to interpret the text during load, while the default is to automatically determine the character set when the file is loaded
  • UTF-8 auto-detect which is useful for non-XML files. If the encoding is not specified in an XML Declaration and the document is not UTF-8, it attempts to interpret the document in the system ANSI character set
  • when a non-Unicode encoding is specified in the XML Declaration, the Char Unicode function now also displays that byte encoding for the character
  • create any Unicode character by number with Convert Char Ref function
  • the status bar shows the document's UTF-8 byte offset cursor location
  • go directly to XML error offsets by double-clicking the error in the status bar (again to get to the second offset if there are two)
  • fix: attribute value quote fix (this release of the editor is built with CMarkup 7.3)
  • fix: CRLF (0x0d 0x0a) is now inserted on Enter rather than just a newline (0x0a)
  • fix: DTD syntax coloring


firstobject XML Editor Release 1.4

September 27, 2004

This release combines added CMarkup 7.2 efficiency with some Unicode file encoding improvements, non-Word-Wrap, and a couple of fixes. The integration with CMarkup 7 allows editing of very large documents with significantly lower memory requirements than CMarkup 6.6 in the previous editor release. The improved BOM handling comes with an option to change it e.g. load a UTF-16 file and save as UTF-8 with or without UTF-8 preamble, or visa versa. Here is a list of changes in this release:

  • better memory efficiency with CMarkup 7
  • non-Word Wrap mode (View menu)
  • UTF-8 Files and the Preamble (aka UTF-8 BOM) support
  • Encoding drop-down choice in the Save dialog
  • fix: access violation was sometimes produced by deleting attribute and then double-clicking tree *noted by Bill Brannan

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • fix: syntax coloring attribute value parsing was incorrectly handling a greater than sign
  • non-Word Wrap (and horizontal scrolling) is a CDataEdit feature, see SetWordWrap method
  • several features not used in the firstobject XML Editor: read-only mode, gutter area on left, text and background color settings
  • UNICODE build of this class is now supported (though not used in firstobject XML Editor); if you use this, text is internally represented in Wide Char rather than UTF-8


firstobject XML Editor Release 1.3

May 26, 2004

Handling of very large documents is greatly improved. This editor was already efficient at 100+MB documents compared to other editors, but now it incorporates the CMarkup 6.6 index array improvement, plus another fix which reduces memory requirements of editing. Altogether, this release utilizes as much as 1/3 less memory, and 2/3 less contiguous memory than the previous release. Here is the list of noteable changes:

  • Memory efficiency improvements described above *aided by Wayne Sopel
  • mouse wheel scrolling *first noted by Ludovico
  • Ctrl-Home and Ctrl-End *noted by Jeff Bean
  • Load UFT-16 and UCS-2 files *noted by Scott Wilson
  • Char Unicode function to view UTF-8 bytes and Unicode code point
  • fix: keyboard shortcuts in tree

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • mouse wheel scrolling, Ctrl-Home, Ctrl-End are improvements in CDataEdit


firstobject XML Editor Release 1.2

July 6, 2003

This release brings syntax coloring and EDOM code generation. Here is a list of the enhancements:

  • XML syntax coloring
  • Tools menu function to get syntax colored HTML of XML document
  • Right-click EDOM C++ code generation
  • Right-click path generation
  • Locate displays path in status bar
  • Fix: font selection was not working for many fonts
  • Fix: search was not working when cursor was at very bottom of document

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • fonts and searching fixes are in CDataEdit
  • syntax coloring is a CDataEdit feature implemented in two functions and two static structure lists; see remarks in SyntaxColorFind and SyntaxColorGet to turn it off or modify for other syntaxes and text coloring purposes.


firstobject XML Editor Release 1.1

May 25, 2003

This release fills in all of the obvious shortcomings of 1.0 such as tab characters, search and replace, context menus. It also takes the usability a step further, making the F5 hot key a handy way of re-parsing and displaying the current location in the tree as you edit the document. So finding the location goes both ways now: from the text into the tree and from the tree into the text; plus now it works for individual attributes in addition to elements. In the interest of simplicity, the previous release's icon denoted states have been replaced with a descriptive status bar message. Here is a list of the enhancements:

  • Sync (F5) shows location in tree corresponding to cursor in text
  • Find attribute
  • Delete, cut, copy from tree
  • common editing: select all, redo, find and replace
  • support for Windows IME, and ANSI character set keyboard entry
  • Locale sensitive "thousands" formatting of byte and millisecond counts shown in status bar e.g. Germany uses periods to separate thousands and India groups digits differently
  • tree occupies entire left region
  • New document is empty rather than having sample XML
  • ridge in divider, and divider position memory
  • Right-click Tools menu in text
  • tab characters

Advanced CMarkup Developer License

The following items pertain to the Advanced Developer License: CDataEdit Class

  • tab character support was implemented by re-writing the Layout function
  • OnImeChar is implemented to support Microsoft global IME (Input Method Editor) which is a Windows Operating System feature that supports text entry in many languages
  • OnChar now properly processes the ANSI character set values up to 255 generated by keyboards including keyboard codes (e.g. to type the euro on a US keyboard hold the alt key and type 0128 on the numeric keypad)
  • FindOccurence supports text search and replace, and the LocateWord method returns the char locations of the beginning and end of the word surrounding the cursor to support getting the current word for the text search default
  • prior to release 1.1 the font was being saved in the registry which did not belong as part of the CDataEdit class; now there is a default font and GetLogFont and SetLogFont methods, and settings are managed outside of CDataEdit


firstobject XML Editor Release 1.0

October 7, 2002

The first release of this Editor supports large documents, XML formatting, UTF-8 viewing and a tree view, on Windows 95 and later Windows operating systems. Known issues are lack of support for tab characters and missing common editor functions like search and replace.