diff options
author | SHIMOMURA Sho <graueule@gmail.com> | 2012-10-21 01:23:56 +0900 |
---|---|---|
committer | SHIMOMURA Sho <graueule@gmail.com> | 2012-10-22 00:02:34 +0900 |
commit | aeac6672fbe70702288b259605cb863493ad8ac2 (patch) | |
tree | 3a8dd17f20b2502aeb8dd21e382350d42aa402da /lib/coderay/scanners | |
parent | 3effca8291ed4941f7b3a1c2088b50274f28aa6f (diff) | |
download | coderay-aeac6672fbe70702288b259605cb863493ad8ac2.tar.gz |
TaskPaper scanner for CodeRay
Diffstat (limited to 'lib/coderay/scanners')
-rw-r--r-- | lib/coderay/scanners/taskpaper.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/coderay/scanners/taskpaper.rb b/lib/coderay/scanners/taskpaper.rb new file mode 100644 index 0000000..c6eb3b3 --- /dev/null +++ b/lib/coderay/scanners/taskpaper.rb @@ -0,0 +1,34 @@ +module CodeRay +module Scanners + + class Taskpaper < Scanner + + register_for :taskpaper + file_extension 'taskpaper' + + protected + + def scan_tokens encoder, options + until eos? + if match = scan(/^\S.*:.*$/) # project + encoder.text_token(match, :project) + elsif match = scan(/^-.+@done(?:\(.*)?.*$/) # completed task + encoder.text_token(match, :complete) + elsif match = scan(/^-.+$/) # task + encoder.text_token(match, :plain) + elsif match = scan(/^.+$/) # comment + encoder.text_token(match, :comment) + elsif match = scan(/\s+/) # space + encoder.text_token(match, :space) + else # other + encoder.text_token getch, :error + end + end + + encoder + end + + end + +end +end |