" " TOPPERS Software " Toyohashi Open Platform for Embedded Real-Time Systems " " Copyright (C) 2011 by TAKUYA " Embedded and Real-Time Systems Laboratory " Graduate School of Information Science, Nagoya Univ., JAPAN " " 上記著作権者は,以下の (1)〜(4) の条件を満たす場合に限り,本ソフトウェ " ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改変・ " 再配布(以下,利用と呼ぶ)することを無償で許諾する. " (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作権 " 表示,この利用条件および下記の無保証規定が,そのままの形でソース " コード中に含まれていること. " (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使用 " できる形で再配布する場合には,再配布に伴うドキュメント(利用者マ " ニュアルなど)に,上記の著作権表示,この利用条件および下記の無保 " 証規定を掲載すること. " (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使用 " できない形で再配布する場合には,次のいずれかの条件を満たすこと. " (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著作 " 権表示,この利用条件および下記の無保証規定を掲載すること. " (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに報 " 告すること. " (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損害 " からも,上記著作権者およびTOPPERSプロジェクトを免責すること.また, " 本ソフトウェアのユーザまたはエンドユーザからのいかなる理由に基づ " く請求からも,上記著作権者およびTOPPERSプロジェクトを免責すること. " " 本ソフトウェアは,無保証で提供されているものである.上記著作権者およ " びTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的に対す " る適合性も含めて,いかなる保証も行わない.また,本ソフトウェアの利用 " により直接的または間接的に生じたいかなる損害に関しても,その責任を負 " わない. " " " Vim indent file " Language: tf (Template File for TOPPERS) " Maintainer: TAKUYA " Last Change: 2011 June 28 " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal indentexpr=GetTFIndent() setlocal indentkeys-=0{,0} indentkeys-=0# indentkeys-=: setlocal indentkeys+==\$ELSE\$,=\$END\$,0; " Only define the function once: if exists("*GetTFIndent") finish endif " if the line is Comment line then return 1, " otherwise, return 0. function IsTFCommentLine(line) if getline(a:line) =~ '^\$[ \t]' return 1 else return 0 endif endfunction " calculate indent function GetTFIndent() if IsTFCommentLine(v:lnum) return 0 endif " Find a non-blank line above the current line: let lnum = prevnonblank(v:lnum - 1) while IsTFCommentLine(lnum) == 1 if lnum == 0 return 0 endif let lnum = prevnonblank(lnum - 1) endwhile " No indent for the start of the file: if lnum == 0 return 0 endif let ind = indent(lnum) let line = getline(lnum) " No indentation if the previous line didn't end with "\": " (Could be annoying, but it lets you know if you made a mistake.) if line =~# '\$\(FOREACH\|JOINEACH\|IF\|FUNCTION\)[ ]' if line !~# '\$END\$' let ind = ind + &sw endif elseif line =~# '\$\(ERROR\|WORNING\)[ \$]' if line !~# '\$END\$' let ind = ind + &sw endif elseif line =~# '\$ELSE\$' if line !~# '\$END\$' let ind = ind + &sw endif endif let line = getline(v:lnum) if line =~# '\$\(ELSE\|END\)\$' let ind = ind - &sw if line =~# '\$\(FOREACH\|JOINEACH\|IF\|FUNCTION\)[ ]' let ind = ind + &sw elseif line =~# '\$\(ERROR\|WORNING\)[ \$]' let ind = ind + &sw endif endif return ind endfunction