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
|