71 lines
1.2 KiB
Ruby
71 lines
1.2 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'set'
|
||
|
module Rouge
|
||
|
module Lexers
|
||
|
load_lexer 'yaml.rb'
|
||
|
|
||
|
class Digdag < YAML
|
||
|
title 'digdag'
|
||
|
desc 'A simple, open source, multi-cloud workflow engine (https://www.digdag.io/)'
|
||
|
tag 'digdag'
|
||
|
filenames '*.dig'
|
||
|
|
||
|
mimetypes 'application/x-digdag'
|
||
|
|
||
|
# http://docs.digdag.io/operators.html
|
||
|
# as of digdag v0.9.10
|
||
|
KEYWORD_PATTERN = Regexp.union(%w(
|
||
|
call
|
||
|
require
|
||
|
loop
|
||
|
for_each
|
||
|
if
|
||
|
fail
|
||
|
echo
|
||
|
|
||
|
td
|
||
|
td_run
|
||
|
td_ddl
|
||
|
td_load
|
||
|
td_for_each
|
||
|
td_wait
|
||
|
td_wait_table
|
||
|
td_partial_delete
|
||
|
td_table_export
|
||
|
|
||
|
pg
|
||
|
|
||
|
mail
|
||
|
http
|
||
|
s3_wait
|
||
|
redshift
|
||
|
redshift_load
|
||
|
redshift_unload
|
||
|
emr
|
||
|
|
||
|
gcs_wait
|
||
|
bq
|
||
|
bq_ddl
|
||
|
bq_extract
|
||
|
bq_load
|
||
|
|
||
|
sh
|
||
|
py
|
||
|
rb
|
||
|
embulk
|
||
|
).map { |name| "#{name}>"} + %w(
|
||
|
_do
|
||
|
_parallel
|
||
|
))
|
||
|
|
||
|
prepend :block_nodes do
|
||
|
rule %r/(#{KEYWORD_PATTERN})(:)(?=\s|$)/ do |m|
|
||
|
groups Keyword::Reserved, Punctuation::Indicator
|
||
|
set_indent m[0], :implicit => true
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|