From 89516d2c4d0359ee76dbcf1cfb3d6598e4969a06 Mon Sep 17 00:00:00 2001 From: Roland Hieber Date: Mon, 23 Oct 2017 10:22:57 +0200 Subject: [PATCH 1/3] syntax: highlight all known directives Acording to Signed-off-by: Roland Hieber --- syntax/ledger.vim | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/syntax/ledger.vim b/syntax/ledger.vim index 699a74f..8ce0a49 100644 --- a/syntax/ledger.vim +++ b/syntax/ledger.vim @@ -48,6 +48,10 @@ syn match ledgerPreDeclarationType /^\(account\|payee\|commodity\|tag\)/ contain syn match ledgerPreDeclarationName /^\S\+\s\+\zs.*/ contained syn match ledgerPreDeclarationDirective /^\s\+\zs\S\+/ contained +syn match ledgerDirective + \ /^\%(alias\|assert\|bucket\|capture\|check\|define\|expr\|fixed\|include\|year\)\s/ +syn match ledgerOneCharDirective /^\%(P\|A\|Y\|N\|D\|C\)\s/ + syn match ledgerComment /^;.*$/ " comments at eol must be preceded by at least 2 spaces / 1 tab syn region ledgerMetadata start=/\%( \|\t\|^\s\+\);/ skip=/^\s\+;/ end=/^/ @@ -84,6 +88,8 @@ highlight default link ledgerAmount Number highlight default link ledgerPreDeclarationType Type highlight default link ledgerPreDeclarationName Identifier highlight default link ledgerPreDeclarationDirective Type +highlight default link ledgerDirective Type +highlight default link ledgerOneCharDirective Type " syncinc is easy: search for the first transaction. syn sync clear From dbbfbc12e1ddb4dd5bcf96e36afeb8c3b68dc1a6 Mon Sep 17 00:00:00 2001 From: Roland Hieber Date: Mon, 23 Oct 2017 12:37:36 +0200 Subject: [PATCH 2/3] syntax: support multiline comment blocks Signed-off-by: Roland Hieber --- syntax/ledger.vim | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/syntax/ledger.vim b/syntax/ledger.vim index 8ce0a49..5bba72e 100644 --- a/syntax/ledger.vim +++ b/syntax/ledger.vim @@ -52,6 +52,8 @@ syn match ledgerDirective \ /^\%(alias\|assert\|bucket\|capture\|check\|define\|expr\|fixed\|include\|year\)\s/ syn match ledgerOneCharDirective /^\%(P\|A\|Y\|N\|D\|C\)\s/ +syn region ledgerBlockComment start=/^comment/ end=/^end comment/ +syn region ledgerBlockTest start=/^test/ end=/^end test/ syn match ledgerComment /^;.*$/ " comments at eol must be preceded by at least 2 spaces / 1 tab syn region ledgerMetadata start=/\%( \|\t\|^\s\+\);/ skip=/^\s\+;/ end=/^/ @@ -74,6 +76,8 @@ exe 'syn match ledgerApplyHead '. \ '/'.s:oe.'\%(^apply\s\+\)\@<=\S.*$/ contained' highlight default link ledgerComment Comment +highlight default link ledgerBlockComment Comment +highlight default link ledgerBlockTest Comment highlight default link ledgerTransactionDate Constant highlight default link ledgerTransactionExpression Statement highlight default link ledgerMetadata Tag From 6d0820e95e11e35b207f616e42f2b9bbfee75acf Mon Sep 17 00:00:00 2001 From: Roland Hieber Date: Mon, 23 Oct 2017 12:39:34 +0200 Subject: [PATCH 3/3] syntax: support more single-line comment characters According to the manual, section 14.2.1 [1], the characters #, |, and * are also supported as comment characters at the beginning of a line. [1]: http://ledger-cli.org/3.0/doc/ledger3.html#Comments-and-meta_002ddata Signed-off-by: Roland Hieber --- syntax/ledger.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/ledger.vim b/syntax/ledger.vim index 5bba72e..7fd202f 100644 --- a/syntax/ledger.vim +++ b/syntax/ledger.vim @@ -54,7 +54,7 @@ syn match ledgerOneCharDirective /^\%(P\|A\|Y\|N\|D\|C\)\s/ syn region ledgerBlockComment start=/^comment/ end=/^end comment/ syn region ledgerBlockTest start=/^test/ end=/^end test/ -syn match ledgerComment /^;.*$/ +syn match ledgerComment /^[;|*#].*$/ " comments at eol must be preceded by at least 2 spaces / 1 tab syn region ledgerMetadata start=/\%( \|\t\|^\s\+\);/ skip=/^\s\+;/ end=/^/ \ keepend contained contains=ledgerTags,ledgerValueTag,ledgerTypedTag