__init__.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. """
  2. pygments.styles
  3. ~~~~~~~~~~~~~~~
  4. Contains built-in styles.
  5. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS.
  6. :license: BSD, see LICENSE for details.
  7. """
  8. from pygments.plugin import find_plugin_styles
  9. from pygments.util import ClassNotFound
  10. #: A dictionary of built-in styles, mapping style names to
  11. #: ``'submodule::classname'`` strings.
  12. STYLE_MAP = {
  13. 'default': 'default::DefaultStyle',
  14. 'emacs': 'emacs::EmacsStyle',
  15. 'friendly': 'friendly::FriendlyStyle',
  16. 'friendly_grayscale': 'friendly_grayscale::FriendlyGrayscaleStyle',
  17. 'colorful': 'colorful::ColorfulStyle',
  18. 'autumn': 'autumn::AutumnStyle',
  19. 'murphy': 'murphy::MurphyStyle',
  20. 'manni': 'manni::ManniStyle',
  21. 'material': 'material::MaterialStyle',
  22. 'monokai': 'monokai::MonokaiStyle',
  23. 'perldoc': 'perldoc::PerldocStyle',
  24. 'pastie': 'pastie::PastieStyle',
  25. 'borland': 'borland::BorlandStyle',
  26. 'trac': 'trac::TracStyle',
  27. 'native': 'native::NativeStyle',
  28. 'fruity': 'fruity::FruityStyle',
  29. 'bw': 'bw::BlackWhiteStyle',
  30. 'vim': 'vim::VimStyle',
  31. 'vs': 'vs::VisualStudioStyle',
  32. 'tango': 'tango::TangoStyle',
  33. 'rrt': 'rrt::RrtStyle',
  34. 'xcode': 'xcode::XcodeStyle',
  35. 'igor': 'igor::IgorStyle',
  36. 'paraiso-light': 'paraiso_light::ParaisoLightStyle',
  37. 'paraiso-dark': 'paraiso_dark::ParaisoDarkStyle',
  38. 'lovelace': 'lovelace::LovelaceStyle',
  39. 'algol': 'algol::AlgolStyle',
  40. 'algol_nu': 'algol_nu::Algol_NuStyle',
  41. 'arduino': 'arduino::ArduinoStyle',
  42. 'rainbow_dash': 'rainbow_dash::RainbowDashStyle',
  43. 'abap': 'abap::AbapStyle',
  44. 'solarized-dark': 'solarized::SolarizedDarkStyle',
  45. 'solarized-light': 'solarized::SolarizedLightStyle',
  46. 'sas': 'sas::SasStyle',
  47. 'staroffice' : 'staroffice::StarofficeStyle',
  48. 'stata': 'stata_light::StataLightStyle',
  49. 'stata-light': 'stata_light::StataLightStyle',
  50. 'stata-dark': 'stata_dark::StataDarkStyle',
  51. 'inkpot': 'inkpot::InkPotStyle',
  52. 'zenburn': 'zenburn::ZenburnStyle',
  53. 'gruvbox-dark': 'gruvbox::GruvboxDarkStyle',
  54. 'gruvbox-light': 'gruvbox::GruvboxLightStyle',
  55. 'dracula': 'dracula::DraculaStyle',
  56. 'one-dark': 'onedark::OneDarkStyle',
  57. 'lilypond' : 'lilypond::LilyPondStyle',
  58. 'nord': 'nord::NordStyle',
  59. 'nord-darker': 'nord::NordDarkerStyle',
  60. 'github-dark': 'gh_dark::GhDarkStyle'
  61. }
  62. def get_style_by_name(name):
  63. """
  64. Return a style class by its short name. The names of the builtin styles
  65. are listed in :data:`pygments.styles.STYLE_MAP`.
  66. Will raise :exc:`pygments.util.ClassNotFound` if no style of that name is
  67. found.
  68. """
  69. if name in STYLE_MAP:
  70. mod, cls = STYLE_MAP[name].split('::')
  71. builtin = "yes"
  72. else:
  73. for found_name, style in find_plugin_styles():
  74. if name == found_name:
  75. return style
  76. # perhaps it got dropped into our styles package
  77. builtin = ""
  78. mod = name
  79. cls = name.title() + "Style"
  80. try:
  81. mod = __import__('pygments.styles.' + mod, None, None, [cls])
  82. except ImportError:
  83. raise ClassNotFound("Could not find style module %r" % mod +
  84. (builtin and ", though it should be builtin") + ".")
  85. try:
  86. return getattr(mod, cls)
  87. except AttributeError:
  88. raise ClassNotFound("Could not find style class %r in style module." % cls)
  89. def get_all_styles():
  90. """Return a generator for all styles by name, both builtin and plugin."""
  91. yield from STYLE_MAP
  92. for name, _ in find_plugin_styles():
  93. yield name