Syntect语法高亮器的Python绑定。
项目描述
pysyntect
版权所有 © 2020– Spyder 项目贡献者
概述
Python绑定用于Syntect库。Pysyntect提供了一种轻量级、快速的引擎,用于使用Sublime Text语法定义和TextMate主题定义进行语法高亮显示,这些定义被许多编辑器共享。
安装
要安装pysyntect,您可以使用conda或pip包管理器
# Using Conda (Recommended)
conda install pysyntect -c spyder-ide
# Using pip
pip install pysyntect
依赖关系
要编译pysyntect,您将需要Rust的最新稳定/测试/夜间版本,以及Cargo。此外,它需要一个带有相应开发头文件的Python发行版。最后,此项目依赖于以下Cargo crates
本地编译
除了 Rust 之外,您还需要安装最新版本的 maturin 才能本地编译此项目
pip install maturin toml
安装完这些包后,可以使用以下命令编译 pysyntect
maturin develop
为了生成 wheels,可以使用 maturin build
替代。该项目支持 PEP517,因此也可以使用 pip 安装此软件包
pip install -U .
运行测试
我们使用 pytest 运行测试,如下所示(调用 maturin develop
之后)
pytest -v syntect/tests
包使用
Pysyntect 提供了加载主题和语法定义以及高亮文本字符串的实用工具和函数。Pysyntect 支持超过 500 个跨多个 TextMate 主题定义的 语法语言定义(不包括在本软件包中)。
from syntect import (highlight, load_theme_folder,
load_default_syntax, load_syntax_folder,
escape_to_console)
# Load default syntax grammars
syntax = load_default_syntax()
# Load syntax grammars from a path
syntax = load_syntax_folder("path/to/a/folder/with/grammars")
# Languages supported by the syntax set
syntax.languages
# Load theme definitions from a path
themes = load_theme_folder("path/to/a/folder/with/themes")
# List of themes loaded
themes.themes
# Select a theme
theme = themes['<name_of_the_theme>']
# Load a file and syntax highlight it
with open('my_file.extension', 'r') as f:
lines = f.read()
# Returns a list of styles to apply per token
color_ranges = highlight(lines, 'extension', syntax, theme)
# Get background/foreground colors by token
style, token = color_ranges[0]
background = style.background
foreground = style.foreground
components = ('r', 'g', 'b', 'a')
bg_red, bg_green, bg_blue, bg_alpha = [getattr(background, c)
for c in components]
fg_red, fg_green, fg_blue, fg_alpha = [getattr(foreground, c)
for c in components]
# Preview syntax highlighing result to console
escape_to_console(color_ranges, display_bg=True)
更新日志
请参阅我们的 CHANGELOG 文件,了解我们的新功能和改进。
贡献指南
我们遵循 PEP8 和 PEP257 为纯 Python 软件包和 Rust 编译扩展。我们为此软件包中声明的所有函数和类使用 MyPy 类型注解。如果您有任何问题/疑问,请随时发送 PR 或创建问题。
关闭
pysyntect-0.3.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ffcb227dc57bffe6e194842944f8d16e49d77d6affd08c8c213d0e2d4e956c43 |
|
MD5 | e06f38f168cd8dcc94c894facf747e67 |
|
BLAKE2b-256 | 294b2459fcaca396848385c620529c6f24711ff522a05db2c9309b1d9ae47a66 |
关闭
pysyntect-0.3.0-cp39-none-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 61b70ad75477acafe63e567e6162f052b43d73e9a21609592163371d6c59fcf8 |
|
MD5 | d7a8a838a6acf55fb1779d574b8c352b |
|
BLAKE2b-256 | d65c1187c8269e8a66f3b9bcdd4f60f40f9a836cd0bd06a7426ef26224b90963 |
关闭
pysyntect-0.3.0-cp39-cp39-manylinux_2_24_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 864307f1da6a45872601ba7389eec48e768cd66268a143ea689a75bf5b262cb9 |
|
MD5 | 2cb9dd2f5ae6595209da168beabbecf5 |
|
BLAKE2b-256 | e1c8cd0bcfc2d806d9e585219fcad692856e98dfdef2ba5ed54af2d8251e0945 |
关闭
哈希值用于pysyntect-0.3.0-cp39-cp39-macosx_10_7_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dd0633f3843bc91106a628d0226a6d737fcdd2f230792d474f9fb0839de7c2be |
|
MD5 | e0feace27a7821727856d2782ae13df4 |
|
BLAKE2b-256 | eedbde95f16f6c7d0458e746da455da5b9fe726dd0a2da03a651564fc0c5d06b |
关闭
哈希值用于pysyntect-0.3.0-cp38-cp38-manylinux_2_24_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 80973fe0c6bada07405c4d498bcefd5d49a94b3a633fbd698d1d00f1347d684f |
|
MD5 | 7e0b1fe0f33282e99833f21307b46694 |
|
BLAKE2b-256 | 8745a262775155bf8f378288c3991ce4a6b73ed8a27c4263691f51897891e2bc |
关闭
哈希值用于pysyntect-0.3.0-cp38-cp38-macosx_10_7_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7af9671da2753813ba3665e41a2a83880b74cbfe810780754be388698215c8ea |
|
MD5 | 3623e3cd478929d120abedb9a63bd007 |
|
BLAKE2b-256 | 0cbaf17b6d5675501fd2005c16e2dcf0f99a1519a86210d08a9282821d7bec6a |
关闭
哈希值用于pysyntect-0.3.0-cp37-cp37m-manylinux_2_24_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 21303f8544c380fbb4cf64497d4898a164915cdebc733ce42072ee512cd66c39 |
|
MD5 | b6be9d1b86cb6ee05d410c75221f56fa |
|
BLAKE2b-256 | b8d2fd9db2d780c65ff4149743844e80234e1f1164db5e890ca0b20236d38538 |
关闭
哈希值用于pysyntect-0.3.0-cp37-cp37m-macosx_10_7_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 458c9e748151b66178e2ed617c2466d08f7c52c1938641dc5695dbb6f5a5a31c |
|
MD5 | 2b0daa84eca8d34078f35d1180feea74 |
|
BLAKE2b-256 | 96892dbea8c202252ab12bbf97aa911952e6231a5bd4356e5e1ea0918d413f16 |
关闭
哈希值用于pysyntect-0.3.0-cp36-cp36m-manylinux_2_24_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6619c93fe3c46f9a22c25098fdf6b72d2735b5b9a4bada00c4ae4a4f9fe6de0a |
|
MD5 | 61ba1ec003ea741629c4fe8296d1a2e0 |
|
BLAKE2b-256 | 1cfdbfba4f8330f08f883ec05da2c75d18c0868a2157c973acf996e196e615d1 |
关闭
哈希值用于pysyntect-0.3.0-cp36-cp36m-macosx_10_7_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 837777bb3356f1838ae6aed4f31bf4a499d90736f0a115e82593e0d690328f27 |
|
MD5 | 11fc8182f9d91d85790662f3189e3797 |
|
BLAKE2b-256 | a8be3d03e869010fbde1a91d6242d5d240ef5debdb7e7877645cbfff60494918 |