Sha256: 85913b20b5d544edc7fb884c165e239bc34241da98162290d6336aee8c3d643b
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
# -*- coding: utf-8 -*- # # frozen_string_literal: true module Rouge module Lexers load_lexer 'php.rb' class Hack < PHP title 'Hack' desc 'The Hack programming language (hacklang.org)' tag 'hack' aliases 'hack', 'hh' filenames '*.php', '*.hh' def self.detect?(text) return true if /<\?hh/ =~ text return true if text.shebang?('hhvm') return true if /async function [a-zA-Z]/ =~ text return true if /\): Awaitable</ =~ text return false end def self.keywords @hh_keywords ||= super.merge Set.new %w( type newtype enum as super async await Awaitable vec dict keyset void int string bool float double arraykey num Stringish ) end prepend :template do rule /<\?hh(\s*\/\/\s*(strict|decl|partial))?$/, Comment::Preproc, :php end prepend :php do rule %r((/\*\s*)(HH_(?:IGNORE_ERROR|FIXME)\[\d+\])([^*]*)(\*/)) do groups Comment::Preproc, Comment::Preproc, Comment::Multiline, Comment::Preproc end rule %r(// UNSAFE(?:_EXPR|_BLOCK)?), Comment::Preproc rule %r(/\*\s*UNSAFE_EXPR\s*\*/), Comment::Preproc end end end end
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
rouge-3.4.1 | lib/rouge/lexers/hack.rb |
rouge-3.4.0 | lib/rouge/lexers/hack.rb |
rouge-alda-3.3.0 | lib/rouge/lexers/hack.rb |
rouge-3.3.0 | lib/rouge/lexers/hack.rb |