Amiel,
I'll have to figure out how to upload it to Textmate then. I've never
done it before.
Meantime, you could use the bundle editor and paste in what I did.
Under the Bundles menu, select "Show Bundle Editor", which gives you the
bundle editor window.
Click on + (bottom left) and select "New Bundle" and name it Ged
With Ged selected, click on + again and select "New Language" and name
it Ged. You will get a default script in the edit part of the window.
Select all that script text and delete it.
Then paste in the script below. When you click back on the main Ged
entry, it should start working.
{ scopeName = 'source.ged';
firstLineMatch = '0 HEAD';
fileTypes = ( 'ged' );
patterns = (
{ name = 'keyword.control.ruby';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '\b(INDI|FAM|SOUR|NOTE|REPO|HEAD|TRLR|OBJE)\b$';
},
{ name = 'keyword.block.ruby';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^0';
},
{ name = 'comment.xref.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^1 \b(FAMC|FAMS)\b';
},
{ name = 'entity.control.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^1 [A-Z]+(?![?!])';
},
{ name = 'string.control.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^2 [A-Z]+(?![?!])';
},
{ name = 'constant.control.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^3 [A-Z]+(?![?!])';
},
{ name = 'support.control.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^4 [A-Z]+(?![?!])';
},
{ name = 'storage.control.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '^[5-9] [A-Z]+(?![?!])';
},
{ name = 'variable.xref.ged';
comment = "everything being a reserved word, not a value
and needing a 'end' is a..";
match = '@.*@';
},
);
}
Click on + again, and select "New Command" and name it validate.
In the "Activation" "Key Equivalent" text box (bottom right hand side)
add control shift V (standard for validation).
Select all the text in the Script Editor, and delete it, then paste in
the script below.
You will need to do an "sudo gem install gedcom" and "sudo gem install
VersionCheck" in a terminal window.
With a GEDCOM file open, you can type control shift V, and you should
get a new text window with the results of the GEDCOM parsers test of the
GEDCOM file.
#!/usr/bin/env ruby
# just to remind you of some useful environment variables
# see Help / Environment Variables for the full list
#echo File: "$TM_FILEPATH"
#echo Word: "$TM_CURRENT_WORD"
#echo Selection: "$TM_SELECTED_TEXT"
#
#sudo gem install VersionCheck
#sudo gem install gedcom
#
require 'rubygems'
require 'gedcom'
require 'versioncheck'
file = ENV["TM_FILEPATH"]
puts "###########################################"
puts "Gedcom opening #{file}"
puts "###########################################"
if VersionCheck.rubyversion.have_at_least_version?(1,9)
g = Gedcom.file("#{file}", "r:ASCII-8BIT") #OK with LF line endings.
else
g = Gedcom.file("#{file}", "r") #OK with LF line endings.
end
puts
puts "###########################################"
puts "Gedcom Consistency test"
puts "###########################################"
g.transmissions[0].self_check
puts
puts "###########################################"
puts "Gedcom Summary"
puts "###########################################"
g.transmissions[0].summary
On 15/01/13 10:01 AM, Amiel Martin wrote:
Hi Rob,
I'd be interested in your GEDCOM bundle and gem...
-Amiel
-Amiel
http://carnesmedia.com
On Sat, Jan 5, 2013 at 3:38 PM, Rob Burrowes
<[email protected] <mailto:[email protected]>> wrote:
I have been working with a lot of GEDCOM files lately, so
yesterday i created a simple bundle to color the keywords (GEDCOM
is a text database format for genealogy data). If anyone is
interested, I can make it available to others.
I had previously written a GEDCOM parser in ruby, and this is
available as a Ruby Gem. The validation script requires the gem to
be installed.
--
Rob Burrowes Ph: +64 9 923 2308
<tel:%2B64%209%20923%202308> (Internal 82308)
Research Data Services Cell: +64 27 4731856
<tel:%2B64%2027%204731856> (internal 64209)
Technical Lead
Centre for eResearch
The University of Auckland
Private Bag 92019 http://www.sit.auckland.ac.nz/~rob
<http://www.sit.auckland.ac.nz/%7Erob>
Auckland Mail Centre http://www.burrowes.org/
Auckland 1142 http://www.wikarekare.org/
NEW ZEALAND
_______________________________________________
textmate-dev mailing list
[email protected]
<mailto:[email protected]>
http://lists.macromates.com/listinfo/textmate-dev
_______________________________________________
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev
--
Rob Burrowes Ph: +64 9 923 2308 (Internal 82308)
Research Data Services Cell: +64 27 4731856 (internal 64209)
Technical Lead
Centre for eResearch
The University of Auckland
Private Bag 92019 http://www.sit.auckland.ac.nz/~rob
Auckland Mail Centre http://www.burrowes.org/
Auckland 1142 http://www.wikarekare.org/
NEW ZEALAND
_______________________________________________
textmate-dev mailing list
[email protected]
http://lists.macromates.com/listinfo/textmate-dev