What's New in GEDitCOM Editor
If you recently upgraded GEDitCOM Editor, this page has links to documentation in these help files on the new features.
In general, each version has many other new features as well (e.g., changes that did not need documentation). You can read the full release notes for all new features on-line by clicking each version's name and release date (which links to the release-note web site).
The GEDitCOM Editor version number is synchronized with GEDItCOM II, but it changes less often. Some new version numbers may have few or even no new features.
- Version 3.5: 17 OCT 2026
- Object specifiers were made more robust and documentation was revised to clarify all options.
- Objects can be defined in an assignment command, which can replace more awkward syntax of get or GetObject commands.
- Object properties can be set in an assignment command, which can replace more awkward syntax of set commands.
- Subroutines can be called using different GoSub styles and can now allow a variable number of arguments.
- A new Def command can define custom functions to be used in expressions. A new cond() string function allows conditionals in those custom functions (and in other expressions too).
- A single-line if...then command is a new convenience method making it easier to code simple conditionals. Also clarified in documentation that
if #varis also true if#varis string equal to "true" (case insensitive). - A RepeatWith ... EndRepeat loop was added for Internal Scripts to iterate strings or objects in a list.
- The Local command can make a range of array variables local using
#var[3-20]. - An Unset command can undefine variables and objects.
- Variables can be accessed by reference, which is mostly useful when writing subroutines. A new val() string function can read variables be reference
- The None object was improved to return a "None" object for all attributes and empty string for all properties. By this change, many "@" expressions that used to cause errors now just return an empty string.
- String functions that used to concatenate arguments into a string (e.g.,
offset(string)) now allow multiple arguments making them much easier to use. - New rjust(), ord(), card(), alpha(), and roman() string functions to help formatting text output of reports.
- The ScriptOutput class was enhanced. It added option to export html reports to files, added moveto command to position for next text output, rewrote monospace reports to use page buffering, and rewrote documentation on creating reports. New monospace reports should be compatible with prior reports except for change in out command when using a single text argument without a column specification; you may need to follow such commands with a newline command.
- The internal scripting Structure object added eventDatePlace, eventDateUserPlace, eventYear, eventCountry, and eventYearCountry properties.
- The internal scripting GEDCOM Object added tag property that works for both GEDCOM Records and GEDCOM Structures.
- The internal scripting Place Record supports alternateName to reverse order a place hierarchy to name starting with the country.
- The internal scripting Individual Record added alternateNAME to give "First LAST" with surname all caps.
- The sort command sorting items from a dictionary by keys had some bugs. Those options now work as documented.
- The SDN Range command was improved when used for dates having just a year. It gives first and last day of the year for any calendar (before could miss by a day).
- The notifyProgress command added an option to suppress the automatic return when adding a message to the scripting panel.
- Documentation of clearContextInfo was corrected to describe its required parameter for record type.
- Version 3.4: 28 APR 2026
- Internal scripting now supports the merge with command (and fixes bug where prior command allowed merging a record with itself, which resulted in record being deleted).
- Internal scripting now supports print, refresh formats, and refresh scripts commands.
- The safe html command supports parameter to reformat html links, This option was there before but is now documented.
- The OpenFile command now suppresses dialog boxes that warn of corrupted records and changes made to imported GEDCOM files.
- The Exit command can now be used in templates.
- The EndGroup command now allows an argument that can be used to remove the group box from the display (such as when no useful information was found).
- Added help an methods to make sure a script honors restrictions set for records.
- Added methods to customize documentation for use in both GEDitCOM II and GEDitCOM. To help in the process, the "Preview In Browser" menu command now has two submenu options to preview documentation seen by GEDitCOM II users or by GEDitCOM users.
- Added help information on work flow when using GEDitCOM Editor with GEDitCOM rather than GEDitCOM II (hintingm working with GEDitCOM II is much easier).
- Added help information on how to use subroutines to create header files.
- Version 3.3: 8 NOV 2025, build 2: 23 Dec 2025
- Build 2 needed some changes to the formatting language to fix all MacOS Tahoe issues. The changes are documented in help:
- A new
tabwidth 0setting for any cell adjusts width to fit its content without changing its height. - Supporting TextCell backgrounds and borders in MacOS Tahoe (without breaking it in olders MacOS's) required a rewrite of methods to draw those cells. This change had to disable "bezel" appearance, but thy still can have rounded or square cells with or without borders.
- A new
- Built in MacOS Tahoe and checked for issues (none found yet).
- Does a better job now of returning to previously selected text when switching between templates in the editing window.
- Remaining changes were to the GENeral language or to internal scripting methods. Many of these were need to support writing an internal scripting version of the "Create Generations Book" extension. Within GEDitCOM Editor, these changes only affected the help files.
- A new Local command can define local variables within subroutines to avoid conflicts with variables defined in the calling code.
- Setting
targettononeblocks click on a Multimedia cell from opening in another application (used in Zoom pane of the Default Format). - Object specifiers enhanced the methods to target objects with commands or to pass objects as command arguments.
- "@" expression used to access properties of internal scripting objects has several new options.
- Strings in dictionaries can be set using an simplified "@" expression on left of an assignment command.
- The sort command can now sort dictionaries in a list by a provided key (with an option for a secondary sort criterion).
- Internal scripting reports has a new "Plain Text" option.
- ScriptOutput object has a new length attribute and now supports the insertString command to insert text in the middle of a report.
- A new "To single object" for internal scripting application object to set an object to a None object.
- A new "hasFontName" property for internal scripting application object can test if a given font is available on the user's computer.
- The userOpenFile command has new option to select multiple files (but only when writing internal scripts).
- Fixed a bug in the description command when using its "LIST" option.
- GEDitCOM II now comes with Internal Scripting modules. The previous python module is now documented in this help.
- Version 3.2: 16 JUN 2024, build 2: 22 JUN 2024, build 3: 29 JUL 2024, build 4: 7 AUG 2024, build 5: 21 OCT 2024, build 6: 22 DEC 2024
- Build 6 added SubProcess amd SafeTex commands for internal scripts, enhanced the offset command to also search for last occurence of a string, add options for accessing dictionary values in "@" expressions, and added the
hexchar()function for expressions. - Bulid 5 had some minor help edits.
- Build 4 added documentation for new Internal Scripting options:
- GEDitCOM II now provides two Internal Scripting modules —
GEDitCOMIIandMappingUtilities— in the "Modules" folder of the application support files. Documentation will come soon. For now, open them in the script editing workspace and see comments at the start of each available subroutine. - Added
eventLonLatBoundsobject attribute for structures andlonLatBoundsobject attribute for place records to help in writing Internal Scripts for reports with maps. - Cleaned up documentation for passing objects to subroutines.
- A subroutine
#returnValue$can now dereference objects like other variables and it will reliably be undefined if a subroutine does not return a value.
- GEDitCOM II now provides two Internal Scripting modules —
- Build 3 update some help information and documented new option for Load command to load internal scripts in "Modules" folders in application support folders. Variable names have allowed underscore characters for a while, but now it is documented too.
- Build 2 fixed issue in new If conditionals with "&&" for AND or "||" for OR logicals when "!=" was used in any block except the first one. It also improved the addStructure command to allow copy and paste source buttons in the "Default Format" to work better.
- Documentation on new internal scripting commands (in alphabetical oder): Beep, closeChild, Compress, consolidateMultimedia, DeleteFiles, LonLatBounds, move, offset, putPasteboard, ReadPasteboard, replace, RevealInFinder, save, showBrowser
- Enhancement to commmands get and AddStructure.
- If conditionals can now include "&&" for AND or "||" for OR logicals between multiple comparisons. Additionally, some rare uniary
ifStr (string1)conditionals (i.e., never used in any browser styles) did not respond as documented, but now do. - Added screenRect attribute to the internal scripting application object.
- Added parentStructure and saving properties to internal scripting document objects.
- New menu commands to open application help on writing browser styles, on writing Internal Scripts, or to see Apple's guide to AppleScript.
- The menu command to indent templates can optional disable indenting of GroupBox cells by holding down the option key.
- Apple has changed (and/or removed) utilities needed for GEDitCOM II to run scripts written in Ruby. Because none of GEDitCOM II's scripts use Ruby scripts (and no user has ever mentioned using Ruby), support for running Ruby scripts has been removed. Scripts can still be written as Internal Scripts (recommended), AppleScripts, or Python scripts.
- Version 3.1: 19 FEB 2024, updated 22 FEB 2024 with GEDitCOM II, build 3 posting
- Documentation on three new internal scripting commands exportGEDCOM, OpenFile, and close a document (in GEDitCOM II, build 4)
- Can now set border color and width for Text cells (this was added in update to support GEDitCOM II, build 3)
- Many additions to internal scripting language allowing it to replace more extensions written in Apple Script or python.
- The Import and Export commands can read and write to files.
- The Load command can load subroutines into internal scripts making it easier to manage complicated scripts.
- The Log command is useful for debugging.
- String expressions can use
quoteto insert a quote character. - A new
containsproperty was added to look for objects or strings in GC Lists or Lists. - More scripting commands were implemened for use in internal scripts (mostly those needed to convert web site export extension to an internal script).
- In some MacOS, Apple altered methods to wrap or not wrap text and it may have affected some versions of GEDitCOM Editor. It seems to be working OK now. Editing of scripts do not wrap text and you can scroll to edit long lines. Editing documentation in html or css files, however, should be wrapping text.
- Version 3.0: build 1: 10 JUL 2022, build 2: 9 OCT 2022, build 3: 24 Dec 2022
- Build 3 add some scripting options and changes needed for MacOS Ventura and update help on scripting options:
- Added list ancestors and list descendants command for better way to get family tree information (and to avoid issues in MacOS Ventura) and added sleep command
- Added some options for application window objects.
- Added dereferencing to access existing objects in subroutines.
- MacOS Ventura caused problems when a script opens a new window, but only for internal or python scripts. Internal scripts were fixed with internal coding. Python scripts can be fixed by using WaitForWindow() now in the python module when needed
- Fixed command to set font color for label of a Group Box cell.
- Build 2 mostly made improvements to the internal scripting language and the documentation given in GEDitCOM Editor.
- The GetObject and get commands were revised exit gracefully when and object is not found. This commands can be used to valid any object before using that object in other commands or "@" expressions.
- That addObject command was change to just skip invalid objects; before it would abort the script.
- Can get albums by name now from a list of albums.
- Added a dictionary object time
- Added several new commands to support various object types and added various new object attributes and properties. Version 3.0b2 should be considered the baseline version for using internal scripting.
- GEDitCOM II (version 3.0) added a new internal scripting option to use when writing extensions. The GEDitCOM Editor can now write such scripts, has documentation on writing internal scripts, contains a dictionary of all objects used by internal scripts. The new documentation also explains how to use scripting commands in internal scripts (including many new commands for internal scripting only).
- The new internal scripting options can also be called or used as subroutines when writing interface formats using the ScriptLink option for editing fields and buttons.
- The interface for entering properties has been improved to remove minor problems and to make sure you do not accidentally paste a tab, return, or line feed character into an entry that may cause problems with such characters.
- The option to Synchronize Languages can now optionally save a report about the process (such as what keys were added and what keys appear to no longer be needed).
- The option to import Languages will now ignore columns labeled "Context". Such a column can be helpful in a spreadsheet to remind you of the purpose of the keys in the list.
- Version 2.7: build 1: Dec 30, 2020, build 2: Feb 1, 2021
- GEDitCOM Editor compiled as a universal app to run native on both Intel macs and the new Silicon chip Macs.
- GEDitCOM Editor correctly adjusts colors used for editing if you change between light and dark mode while it is running.
- The documentation added help explaining how to support light and dark mode in one browser style and how to write extensions that work in both GEDitCOM II and in GEDitCOM
- A new EditURL cell is displayed as clickable link to a URL address. The address can be edited by option clicking (it has been available for a while, but not documented before).
- Version 2.6: build 1: 31 MAY 2020, build 3: 15 SEP 2020, build 4: 21 SEP 2020, build 5: 31 OCT 2020, build 6: 23 Nov 2020
- Compiled and tested in Catalina.
- Version 2.5, posted 24 MAR 2020
- Compiled and tested in Mojave.
- This version can be used in either light or dark mode.
- Version 2.4, posted 12 JUN 2018
- Compiled and tested in High Sierra Sierra.
- Some editing of property list stopped working in Sierra and High Sierra and those issues were fixed.
- A new application property (
mappingAPI) is 0 if user prefers Google maps and 1 if user prefers opelLayers maps.
- Version 2.3, posted 17 NOV 2016
- Compiled and tested in El Capitan and Sierra. No issues were found.
- Version 2.10, posted 3 JUN 2015
- Compiled and tested in Yosemite. The only issue found was that Yosemite decided to converts normal quotes used in Python scripts to curly quotes. The editing window now uses the type of quotes required in the Python language.
- Documentation on writing Extensions for GEDitCOM.
- The ShowAll command has added no options INDIEvntsAttrs, INDIEvntsOrdns, INIDAttrOrdns, INDIEvntsAttrsOrdns, and FAMEvntsOrdns to slow show blocks of anuy combination of events, attributes, and ordinanctes.
- Three new AppleScripting commands to help support writing extensions for GEDitCOM (
uniqueFile,makeFolder, andopenURLorFile). - The first and middle name properties when writing scripts have been improved to handle complicated names better,
- Version 2.0, posted 17 AUG 2014
- GEDitCOM Editor can now open and edit the new "Plug In" or "Extension" file format defined by GEDitCOM II, version 2.0. It is now recommended that all your scripts by packaged in extensions.
- The built-in Help content was extensively rewritten to work better with Apple's help viewer (which now means it is searchable in the Help Viewer).
- All help on writing scripts (i.e., programming details), was moved from GEDitCOM II help to the GEDitCOM Editor help instead.
- Version 1.7, build, posted Mar 14 2012 (build 3, 20 APR 2012, and 4, 12 JUN 2010, had no changes except its name)
- New read-only variables to determine the current printing margins.
- The
sizeToFitcommand works better with TextField cells. Before it did not account for display of scroll bars and could miscalculate the size by one line too little. - The format property for some cells (e.g., Expression cells) can now use "%!" as place holder for expression text and it will compact multiline of text to a single line. One use is to compact address fields to a single line.
- Version 1.7, posted 6 Feb 2012
- Documentation on creating the new place editing fields is in the section on EditValue cells.
- The
CellBackgroundproperty of many cells can now useparentto set to the color of the parent object for the cell. - The
tabWidthproperty can use negative numbers to expand the size of the cell if it's text does not fit in the specified tab width. - A new
watchproperty for cells implements a new method for updating one cell based on changes elsewhere in the file. - A new read-only variable
#imagePPI$lets you determine the pixel resolution got an image attached to a cell. - A new format property for ExpressionField cells adds new options for dipslay of GEDCOM data.
- An ExpressionField cell automatically handle custon _BOX tags in GEDitCOM II place records. It draws the map defined by the bounding box and watches out for changes in other data might might affect the map display.
- New
countandcountAllcan count number of tags of a certain type.
- Version 1.6, build 2, posted 9 Feb 2011
- When editing Python or Ruby scripts, tabs are converted to 4 spaces. This helps especially when aligning code as required in the Python language.
- Go to line number menu command.
- Remembers the files opened in the Scripting Editing Workspace better.
- Version 1.6, posted 13 Nov 2010
- A new "Script Editing Workspace" can be used to edit and test Python or Ruby scripts for GEDitCOM II.
- Templates and scripts are colorized to help in editing.
- New "Indent Commmands" menu command to indent all commande in the current template for logical blocks such as conditional or repeat blocks.
- New special variables
#paperHeight$,#paperWidth$, and#today$. - The
ifDefandifNDefcommands can check is a variable has been defined. - A new soundex() function can be used to get SoundEx code for any string.
- The GEDitCOM Editor is now a scriptable application, but its only use is when GEDitCOM II needs to send a message such as to open a certain template or to open the script editing workspace.
- Version 1.5, build 2, posted 26 Aug 2010
- New
ScriptMessageproperty of some cells can send message to scripts run using theScriptLinkproperty. - New
reverseoption in GEDCOM expressions.
- New
- Version 1.5, posted 11 July 2010
- New
ScriptLinkandScriptTypeproperties for all text editing cells and for LinkButton cells allows the user to run scripts embedded in a browser style.
- New
- Version 1.4, posted 19 April 2010
- New
lineHeightproperty for Text Field cells. - Several read-only variables were added or changed:
#thumbnailSize$and#displayHeight$were added;#imageType$added an option to indicate a thumbnail image;#bottomMargin$was fixed (before it could get wrong result). - CreateLinkButton cells can be used in more places and now can create links as subordinate data as needed. Furthermore, it has a new use to attach optional tags at subordinate locations.
- New conditional option (
htmldiv) to locatehtmlcontent in GEDCOM data (see ifstr command). - New functions for working with strings (
chars(),word(),offset(),replace()). - Fix bugged assigning values to certain array variables (e.g.,
#var[#i]=3).
- New
- Version 1.3, posted 9 January 2010
- New
Localizeproperty for Expression cells.
- New
- Version 1.2, posted 7 November 2009
- New cells and commands created for supporting display of multiple panes in records.
- New controlSize property for some cells (e.g., Button cells and PopupMenuEdit cells).
- The sizeToFit command has new option to keep cell smaller than current row size.
- The
iftag is here(ornothere) conditionals can check multiple tags in a single command.
- Version 1.1, posted August 2009 (no changes to GEDitCOM Editor)
- Version 1.0, posted 7 June 2009 (original posted version)
Much of this version was to add features to Internal Scripting methods (effectively Internal Scripting 2.0). All the coding to support the changes are in GEDitCOM II, version 3.5. Most of the changes to GEDitCOM Editor were to revise Internal Scripting documentation to integrate all the new options.
All new features are described briefly in the release notes and more thoroughly in this help documentation.