利用可能なレクサー
《 初回公開:2022/03/26 , 最終更新:未 》
原文は
旧バージョンの記事は
【 目次 】
このページには、使用可能なすべての組み込みレクサーとそれらが使用するオプションが一覧表示されます。
現在、すべてのレクサーは次のオプションをサポートしています。
- stripnl
- 入力から先頭と末尾の改行を削除します(デフォルト:True)
- stripall
- 入力からすべての先頭と末尾の空白を削除します(デフォルト:False)。
- ensurenl
- 入力が改行で終わっていることを確認する(デフォルト:True)。
これは、入力が行単位の一部のレクサーに必要です。
バージョン1.3の新機能。 - tabsize
- 0より大きい値が指定されると、入力のタブを広げます(デフォルト:0)。
- encoding
-
指定する場合は、エンコード名( "utf-8"など)にする必要があります。
このエンコーディングは、入力文字列をUnicodeに変換するために使用されます(まだUnicode文字列でないなら)。
デフォルトは"guess"ですこのオプションが"guess"に設定されているなら、単純なUTF-8とLatin-1の検出に使われ、"chardet"に設定されているなら、chardetライブラリが入力のエンコードが推測するのに使われます。
バージョン0.6の新機能。
「ShortNames」フィールドには、get_lexer_by_name()関数で使われる識別子がリストします。
これらのPygments組み込みのレクサーは、pygments.lexersからインポートできます。
愚鈍人の独り言
以下、原文ではPygments組み込みのレクサーが列挙されているがそれについては原文を参照の事。
ここではそれを割愛させてもらう。
すべてのレクサーを列挙する。
バージョン0.6の新機能。
すべてのレクサー(ビルトインとプラグインの両方)を取得するには、pygments.lexersモジュールからget_all_lexers()関数を使用できます。
>>> from pygments.lexers import get_all_lexers
>>> i = get_all_lexers()
>>> i.next()
('Diff', ('diff',), ('*.diff', '*.patch'), ('text/x-diff', 'text/x-patch'))
>>> i.next()
('Delphi', ('delphi', 'objectpascal', 'pas', 'pascal'), ('*.pas',), ('text/x-pascal',))
>>> i.next()
('XML+Ruby', ('xml+ruby', 'xml+erb'), (), ())
ご覧のとおり、戻り値は、(name, aliases, filetypes, mimetypes)形式のタプルを生成するイテレータです。