[ale] indent script problems

Allan Neal allanneal at bellsouth.net
Sun Dec 5 19:54:55 EST 2004


Disclaimer:  I have sent this question to the vim list as well, but received
no responses.

I am tring to write an indent script for my ledger files.  Here is an example:

; Globals
; Year
Y2004

; Begin Register
12/2 Paycheck
    Assets:Bank1:Checking   $100.00
    Assets:Bank2:Savings    $100.00
    Salary:Work

The indenting is really simple.  the indent is 0 unless the previous line is a
line starting with a date.  Then continue to indent by &sw until a blank line
and a date string line for the next transaction.

I am getting the indent set to 0 on the date string line, but no indenting is
happening on the next line.  

What am I doing wrone?

Here is the script:


" File Name: ledger.vim (indent file)
" Maintainer: Allan Neal
" Original Date: 04/12/04 10:55:20 
" Last Update: 04/12/04 10:55:12 
" Description: Indent the ledger file the in compliance with the ledger syntax
" highlighting file.  Entry is flush left and all accounts are indented one ts

" Only define the funtion once
if exists("*LedgerIndent")
	finish
endif

let b:did_indent = 1

setlocal indentexpr=LedgerIndent()

function LedgerIndent()
	let cline = getline(v:lnum)
	let ind = 0
	if (cline =~ "^\d+")
		return 0
	endif
	if cline =~ "\<.*:\<.*"
		let ind = ind + &sw
	endif
	if cline =~ "^$"
		return 0
	endif
	let lnum = prevnonblank(v:lnum - 1)
	if lnum == 0
		return 0
	endif
	let pline = getline(lnum)
	if (indent(v:lnum - 1) != 0 && pline !~ "^$")
		return -1
	endif
	if ( pline =~ "^\d+" )
		let ind = ind + &sw
	endif
	return ind
endfunction

" vim:sw=4

-- 
 __^__                                          __^__
( ___ )----------------------------------------( ___ )
 | / | "Engineers aren't boring people,         | \ |
 | / | we just get excited about boring things" | \ |
 |___|                 --Anon                   |___|
(_____)----------------------------------------(_____)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available




More information about the Ale mailing list