利用可能なレクサー

《 初回公開: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)形式のタプルを生成するイテレータです。

ページのトップへ戻る