Source code for eye.helpers.lexer
# this project is licensed under the WTFPLv2, see COPYING.txt for details
"""Automatic syntax coloring plugin
This plugins adds automatic syntax coloring in an editor based on file extension. See :doc:`eye.lexers`.
Simple usage:
>>> import eye.helpers.lexer
>>> eye.helpers.lexer.set_enabled(True)
"""
import os
from eye import lexers
from eye.connector import register_signal, disabled
__all__ = ('set_enabled', 'auto_lexer')
[docs]
@register_signal(['editor'], 'file_opened')
@register_signal(['editor'], 'file_saved')
@disabled
def auto_lexer(editor, path=None):
"""Enables syntax coloring for an editor
The correct lexer is determined using file extension. See :any:`eye.lexers.extensionToLexer`.
"""
if editor.lexer():
return
ext = os.path.splitext(editor.path)[1]
cls = lexers.extension_to_lexer(ext)
if cls:
editor.setLexer(cls())
[docs]
def set_enabled(enabled=True):
auto_lexer.enabled = enabled