12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
- """
- pygments.plugin
- ~~~~~~~~~~~~~~~
- Pygments setuptools plugin interface. The methods defined
- here also work if setuptools isn't installed but they just
- return nothing.
- lexer plugins::
- [pygments.lexers]
- yourlexer = yourmodule:YourLexer
- formatter plugins::
- [pygments.formatters]
- yourformatter = yourformatter:YourFormatter
- /.ext = yourformatter:YourFormatter
- As you can see, you can define extensions for the formatter
- with a leading slash.
- syntax plugins::
- [pygments.styles]
- yourstyle = yourstyle:YourStyle
- filter plugin::
- [pygments.filter]
- yourfilter = yourfilter:YourFilter
- :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
- :license: BSD, see LICENSE for details.
- """
- LEXER_ENTRY_POINT = 'pygments.lexers'
- FORMATTER_ENTRY_POINT = 'pygments.formatters'
- STYLE_ENTRY_POINT = 'pygments.styles'
- FILTER_ENTRY_POINT = 'pygments.filters'
- def iter_entry_points(group_name):
- try:
- import pkg_resources
- except (ImportError, IOError):
- return []
- return pkg_resources.iter_entry_points(group_name)
- def find_plugin_lexers():
- for entrypoint in iter_entry_points(LEXER_ENTRY_POINT):
- yield entrypoint.load()
- def find_plugin_formatters():
- for entrypoint in iter_entry_points(FORMATTER_ENTRY_POINT):
- yield entrypoint.name, entrypoint.load()
- def find_plugin_styles():
- for entrypoint in iter_entry_points(STYLE_ENTRY_POINT):
- yield entrypoint.name, entrypoint.load()
- def find_plugin_filters():
- for entrypoint in iter_entry_points(FILTER_ENTRY_POINT):
- yield entrypoint.name, entrypoint.load()
|