Add bin and edit workflow
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s

This commit is contained in:
2026-09-16 13:11:16 -06:00
parent c8ac4fcae5
commit 4cee170d66
17576 changed files with 895740 additions and 2 deletions
@@ -0,0 +1,168 @@
# -*- coding: utf-8 -*- #
# frozen_string_literal: true
module Rouge
module Lexers
class Varnish < RegexLexer
title 'VCL: Varnish Configuration Language'
desc 'The configuration language for Varnish HTTP Cache (varnish-cache.org)'
tag 'vcl'
aliases 'varnishconf', 'varnish'
filenames '*.vcl'
mimetypes 'text/x-varnish', 'text/x-vcl'
SPACE = '[ \f\n\r\t\v]+'
# backend acl
def self.keywords
@keywords ||= Set.new %w[
vcl set unset include import if else elseif elif elsif director probe
backend acl
declare local
BOOL FLOAT INTEGER IP RTIME STRING TIME
]
end
def self.functions
@functions ||= Set.new %w[
ban call hash_data new regsub regsuball return rollback
std.cache_req_body std.collect std.duration std.fileread std.healthy
std.integer std.ip std.log std.port std.querysort std.random std.real
std.real2time std.rollback std.set_ip_tos std.strstr std.syslog
std.time std.time2integer std.time2real std.timestamp std.tolower
std.toupper synth synthetic
]
end
def self.variables
@variables ||= Set.new %w[
bereq bereq.backend bereq.between_bytes_timeout bereq.connect_timeout
bereq.first_byte_timeout bereq.method bereq.proto bereq.retries
bereq.uncacheable bereq.url bereq.xid beresp beresp.age
beresp.backend beresp.backend.ip beresp.backend.name beresp.do_esi
beresp.do_gunzip beresp.do_gzip beresp.do_stream beresp.grace
beresp.keep beresp.proto beresp.reason beresp.status
beresp.storage_hint beresp.ttl beresp.uncacheable beresp.was_304
client.identity client.ip local.ip now obj.age obj.grace obj.hits
obj.keep obj.proto obj.reason obj.status obj.ttl obj.uncacheable
remote.ip req req.backend_hint req.can_gzip req.esi req.esi_level
req.hash_always_miss req.hash_ignore_busy req.method req.proto
req.restarts req.ttl req.url req.xid resp resp.proto resp.reason
resp.status server.hostname server.identity server.ip
]
end
# This is never used
# def self.routines
# @routines ||= Set.new %w[
# backend_error backend_fetch backend_response purge deliver fini hash
# hit init miss pass pipe recv synth
# ]
# end
state :root do
# long strings ({" ... "})
rule %r/\{".*?"}/m, Str::Single
# heredoc style long strings ({xyz"..."xyz})
rule %r/\{(\w+)".*?"(\1)\}/m, Str::Single
# comments
rule %r'/\*.*?\*/'m, Comment::Multiline
rule %r'(?://|#).*', Comment::Single
rule %r/true|false/, Keyword::Constant
# "wildcard variables"
var_prefix = Regexp.union(%w(beresp bereq resp req obj))
rule %r/(?:#{var_prefix})\.http\.[\w.-]+/ do
token Name::Variable
end
# local variables (var.*)
rule %r/(?:var)\.[\w.-]+/ do
token Name::Variable
end
rule %r/(sub)(#{SPACE})([\w-]+)/ do
groups Keyword, Text, Name::Function
end
# inline C (C{ ... }C)
rule %r/C\{/ do
token Comment::Preproc
push :inline_c
end
rule %r/\.?[a-z_][\w.-]*/i do |m|
next token Keyword if self.class.keywords.include? m[0]
next token Name::Function if self.class.functions.include? m[0]
next token Name::Variable if self.class.variables.include? m[0]
token Text
end
## for number literals
decimal = %r/[0-9]+/
hex = %r/[0-9a-f]+/i
numeric = %r{
(?:
0x#{hex}
(?:\.#{hex})?
(?:p[+-]?#{hex})?
)
|
(?:
#{decimal}
(?:\.#{decimal})?
(?:e[+-]?#{decimal})?
)
}xi
# duration literals
duration_suffix = Regexp.union(%w(ms s m h d w y))
rule %r/#{numeric}#{duration_suffix}/, Num::Other
# numeric literals (integer / float)
rule numeric do |m|
case m[0]
when /^#{decimal}$/
token Num::Integer
when /^0x#{hex}$/
token Num::Integer
else
token Num::Float
end
end
# standard strings
rule %r/"/, Str::Double, :string
rule %r'[&|+-]{2}|[<=>!*/+-]=|<<|>>|!~|[-+*/%><=!&|~]', Operator
rule %r/[{}();.,]/, Punctuation
rule %r/\r\n?|\n/, Text
rule %r/./, Text
end
state :string do
rule %r/"/, Str::Double, :pop!
rule %r/\\[\\"nt]/, Str::Escape
rule %r/\r\n?|\n/, Str::Double
rule %r/./, Str::Double
end
state :inline_c do
rule %r/}C/, Comment::Preproc, :pop!
rule %r/.*?(?=}C)/m do
delegate C
end
end
end
end
end