1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
# frozen_string_literal: true
require 'forwardable'
require_relative 'pygments/lexer'
require_relative 'pygments/popen'
module Pygments
class << self
extend Forwardable
def lexers
LexerCache.instance.raw_lexers
end
def engine
Thread.current.thread_variable_get(:pygments_engine) ||
Thread.current.thread_variable_set(:pygments_engine, Pygments::Popen.new)
end
def lexer_name_for(*args)
names = engine.lexer_names_for(*args)
names&.[](0)
end
def_delegators :engine,
:formatters,
:lexers!,
:filters,
:styles,
:css,
:lexer_names_for,
:highlight,
:start,
:pygments_version
end
end
|