Metadata-Version: 2.1
Name: tmengine
Version: 1.0.0
Summary: A TextMate grammar engine in Python.
Author-email: Aarav Malani <aarav.malani@gmail.com>
Project-URL: Homepage, https://github.com/AaravMalani/tmengine
Project-URL: Bug Tracker, https://github.com/AaravMalani/tmengine/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE

# tmengine: A TextMate grammar engine in Python.
## Installation
```sh
python -m pip install tmengine
# or
python -m pip install git+https://github.com/AaravMalani/tmengine
```

## Usage
```python
import tmengine
import json

engine = tmengine.load_folder('grammars/') # Load all grammars in the grammars/ folder
print(engine.languages) # Returns a tuple of scopeNames
print(engine.parse('source.akbs', 'compile($FILES)')) # Parse 'compile($FILES)' using language with `scopeName` as `source.akbs` 
# [TextMateExpression(name='variable.other', range=(8, 14)), TextMateExpression(name='expression.inner', range=(8, 14)), TextMateExpression(name='punctuation.paren.open', range=(7, 8)), TextMateExpression(name='punctuation.paren.close', range=(14, 15)), TextMateExpression(name='expression.group', range=(7, 15)), TextMateExpression(name='keyword.function', range=(0, 7))]

with open('grammars/akbs.json', 'r') as f:
    engine2 = tmengine.TextMateEngine(json.load(f)) # or tmengine.TextMateEngine([json.load(f)])
```

## Tasklist
- [ ] Accept YAML
- [ ] Accept XML
- [ ] Make code ignore errors
