1 | <?php |
||
30 | class KeyLighter |
||
31 | { |
||
32 | use Singleton; |
||
33 | |||
34 | const VERSION = '0.9-dev'; |
||
35 | |||
36 | /** |
||
37 | * Registered aliases |
||
38 | * |
||
39 | * @var array |
||
40 | */ |
||
41 | private $_languages = [ |
||
42 | 'name' => [], |
||
43 | 'mime' => [], |
||
44 | 'extension' => [] |
||
45 | ]; |
||
46 | |||
47 | private $_formatters = []; |
||
48 | |||
49 | /** @var FormatterInterface */ |
||
50 | private $_formatter = null; |
||
51 | |||
52 | /** |
||
53 | * @param string $name |
||
54 | * |
||
55 | * @return Language |
||
56 | */ |
||
57 | 2 | public function getLanguage($name) |
|
69 | |||
70 | 5 | public function languageByName($name, $params = []) |
|
76 | |||
77 | 3 | public function languageByMime($mime, $params = []) |
|
83 | |||
84 | 2 | public function languageByExt($filename, $params = []) |
|
94 | |||
95 | /** |
||
96 | * @param callable|string $language |
||
97 | * @param array[string] $aliases |
||
98 | * |
||
99 | * @deprecated Will be removed in 1.0 |
||
100 | */ |
||
101 | public function registerLanguage($language, $aliases) |
||
105 | |||
106 | 20 | public function setDefaultFormatter(FormatterInterface $formatter) |
|
110 | |||
111 | 3 | public function registeredLanguages($by = 'name', $class = false) |
|
117 | |||
118 | 1 | public function getDefaultFormatter() |
|
122 | |||
123 | public function addFormatter($name, FormatterInterface $formatter) |
||
127 | |||
128 | public function getFormatter($name) |
||
132 | |||
133 | public function registeredFormatters() |
||
137 | |||
138 | 13 | public function highlight($source, Language $language, FormatterInterface $formatter = null) |
|
143 | |||
144 | 20 | public function __construct() |
|
150 | |||
151 | public function init() |
||
152 | { |
||
153 | foreach(include __DIR__.'/Config/metadata.php' as $alias) { |
||
154 | $class = $alias[0]; |
||
155 | unset($alias[0]); |
||
156 | |||
157 | $this->register($class, $alias); |
||
158 | } |
||
159 | |||
160 | $this->_formatters = include __DIR__.'/Config/formatters.php'; |
||
161 | } |
||
162 | |||
163 | /** |
||
164 | * @param string|callable $class |
||
165 | * @param array $options |
||
166 | */ |
||
167 | 12 | public function register($class, array $options) |
|
179 | } |
||
180 |