forked from ledger/ledger
-
Notifications
You must be signed in to change notification settings - Fork 1
Editing Ledger files with TextWrangler
lifepillar edited this page Oct 28, 2012
·
1 revision
The following plist can be used to add Ledger support to the free OS X text editor TextWrangler. Just save the code below as Ledger.plist
and put it inside ~/Library/Application Support/TextWrangler/Language Modules
; then, close and
re-open TextWrangler. Files with suffix .ledger
will be recognized as Ledger
files (additional file suffixes can be added in TextWrangler > Preferences >
Languages) and colored accordingly. Besides, each transaction will be accessible from the function pop-up menu. Do not forget to edit the file to set your currencies (see the comments in the code)!
<!-- Gleefully brought to you by Lifepillar -->
<!-- Version 1.0.2 -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BBEditDocumentType</key>
<string>CodelessLanguageModule</string>
<key>BBLMColorsSyntax</key> <true/>
<key>BBLMIsCaseSensitive</key> <false/>
<key>BBLMLanguageCode</key>
<string>Ldgr</string>
<key>BBLMLanguageDisplayName</key>
<string>Ledger</string>
<key>BBLMScansFunctions</key>
<true/>
<key>BBLMSuffixMap</key>
<array>
<dict>
<key>BBLMLanguageSuffix</key>
<string>.ledger</string>
</dict>
</array>
<key>BBLMCanSpellCheckCodeRuns</key>
<false/>
<key>Language Features</key>
<dict>
<key>Identifier and Keyword Characters</key>
<string><![CDATA[!ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]]></string>
<key>Comment Pattern</key>
<string><![CDATA[(?x:
(?>
(?> [;#%|\*] .* $ ) |
(?> @comment(?s:.*?)(?>@end\scomment|\z) )
)
)]]></string>
<!-- Adapt currencies as needed (I'm too lazy to add them all) -->
<key>String Pattern</key>
<string><![CDATA[(?x:
(?> -?\d+([,\.]\d+)*\s*(EUR|USD|CAD|AUD) ) |
(?> \$\s*-?\d+([,\.]\d+)*[\s\z] ) |
(?> \d+[:\/\-]\d+[:\/\-]\d+ )
)]]></string>
<key>Function Pattern</key>
<string><![CDATA[(?x:
(?P<function_name>(^\d+.+$))
)]]></string>
<key>Skip Pattern</key>
<string><![CDATA[(?x:(?P>comment))]]></string>
</dict>
<key>BBLMKeywordList</key>
<array>
<string>Day</string>
<string>Week</string>
<string>Month</string>
<string>Quarter</string>
<string>Year</string>
<string>Days</string>
<string>Weeks</string>
<string>Months</string>
<string>Quarters</string>
<string>Years</string>
<string>Daily</string>
<string>Weekly</string>
<string>Biweekly</string>
<string>Monthly</string>
<string>Bimonthly</string>
<string>Quarterly</string>
<string>Yearly</string>
<string>Every</string>
<string>January</string>
<string>February</string>
<string>March</string>
<string>April</string>
<string>May</string>
<string>June</string>
<string>July</string>
<string>August</string>
<string>September</string>
<string>October</string>
<string>November</string>
<string>December</string>
<string>Jan</string>
<string>Feb</string>
<string>Mar</string>
<string>Apr</string>
<string>May</string>
<string>Jun</string>
<string>Jul</string>
<string>Aug</string>
<string>Sep</string>
<string>Oct</string>
<string>Nov</string>
<string>Dec</string>
<string>This</string>
<string>Next</string>
<string>Last</string>
<string>In</string>
<string>From</string>
<string>Since</string>
<string>To</string>
<string>Until</string>
<!-- Commmand directives -->
<string>account</string>
<string>alias</string>
<string>apply</string>
<string>assert</string>
<string>bucket</string>
<string>capture</string>
<string>check</string>
<string>comment</string>
<string>commodity</string>
<string>default</string>
<string>define</string>
<string>end</string>
<string>endfixed</string>
<string>eval</string>
<string>fixed</string>
<string>format</string>
<string>include</string>
<string>nomarket</string>
<string>note</string>
<string>payee</string>
<string>tag</string>
<string>test</string>
<!-- The following are not Ledger keywords -->
<!-- Feel free to remove them or modify them -->
<string>Accounts</string>
<string>Assets</string>
<string>Card</string>
<string>Cash</string>
<string>Checking</string>
<string>Credit</string>
<string>Debit</string>
<string>Equity</string>
<string>Expenses</string>
<string>Income</string>
<string>Interest</string>
<string>Liabilities</string>
<string>Payable</string>
<string>Receivable</string>
<string>Savings</string>
<string>Taxes</string>
</array>
</dict>
</plist>