This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*- #
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Rouge
|
||||
module Lexers
|
||||
class SystemD < RegexLexer
|
||||
tag 'systemd'
|
||||
aliases 'unit-file'
|
||||
filenames '*.service'
|
||||
mimetypes 'text/x-systemd-unit'
|
||||
desc 'A lexer for systemd unit files'
|
||||
|
||||
state :root do
|
||||
rule %r/\s+/, Text
|
||||
rule %r/[;#].*/, Comment
|
||||
rule %r/\[.*?\]$/, Keyword
|
||||
rule %r/(.*?)(=)(.*)(\\\n)/ do
|
||||
groups Name::Tag, Punctuation, Text, Str::Escape
|
||||
push :continuation
|
||||
end
|
||||
rule %r/(.*?)(=)(.*)/ do
|
||||
groups Name::Tag, Punctuation, Text
|
||||
end
|
||||
end
|
||||
|
||||
state :continuation do
|
||||
rule %r/(.*?)(\\\n)/ do
|
||||
groups Text, Str::Escape
|
||||
end
|
||||
rule %r/(.*)'?/, Text, :pop!
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user