mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-02-03 01:47:09 +00:00
feat: implement complete tree-sitter-shellspec grammar with comprehensive testing
- Add full ShellSpec grammar extending tree-sitter-bash - Support all ShellSpec constructs: Describe, Context, It, hooks, utilities - Include Data block parsing with statements and argument styles - Add 61 comprehensive test cases covering real-world patterns - Implement optimized GitHub workflows with CI/CD automation - Configure complete development tooling (linting, formatting, pre-commit) - Add comprehensive documentation and contribution guidelines - Optimize grammar conflicts to zero warnings - Support editor integration for Neovim, VS Code, Emacs Breaking Changes: - Initial release, no previous API to break BREAKING CHANGE: Initial implementation of tree-sitter-shellspec grammar # Conflicts: # .github/workflows/codeql.yml # .github/workflows/pr-lint.yml # .pre-commit-config.yaml # Conflicts: # .github/workflows/pr-lint.yml # Conflicts: # .github/workflows/pr-lint.yml
This commit is contained in:
56
.github/ISSUE_TEMPLATE/bug_report.md
vendored
56
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,38 +1,44 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
about: Report a parsing issue or bug in tree-sitter-shellspec
|
||||
title: "[BUG] "
|
||||
labels: bug
|
||||
assignees: ivuorinen
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
A clear and concise description of the parsing issue or bug.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
**ShellSpec code that doesn't parse correctly**
|
||||
Please provide the ShellSpec code that causes the issue:
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
```shellspec
|
||||
# Paste your ShellSpec code here
|
||||
```
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
**Expected parsing behavior**
|
||||
A clear description of how the code should be parsed or what syntax highlighting you expected.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
**Actual behavior**
|
||||
What actually happens when the parser encounters this code? Include any error messages.
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
**Environment:**
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
- OS: [e.g. Linux, macOS, Windows]
|
||||
- Editor: [e.g. Neovim, VS Code, Emacs]
|
||||
- tree-sitter-shellspec version: [e.g. 0.1.0]
|
||||
- tree-sitter version: [e.g. 0.20.0]
|
||||
- ShellSpec version: [e.g. 0.28.1]
|
||||
|
||||
**Tree-sitter parse output (if applicable)**
|
||||
If you can run `tree-sitter parse`, please include the output:
|
||||
|
||||
```text
|
||||
# tree-sitter parse output here
|
||||
```
|
||||
|
||||
## Additional context
|
||||
|
||||
- Is this code from a real ShellSpec test file?
|
||||
- Does the code work correctly with the ShellSpec test runner?
|
||||
- Any other context that might help debug the issue.
|
||||
|
||||
32
.github/ISSUE_TEMPLATE/feature_request.md
vendored
32
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,20 +1,32 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
about: Suggest a grammar enhancement or new feature for tree-sitter-shellspec
|
||||
title: "[FEATURE] "
|
||||
labels: enhancement
|
||||
assignees: ivuorinen
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
**Is your feature request related to a ShellSpec parsing issue?**
|
||||
A clear description of what ShellSpec syntax is not currently supported. Ex. "Data blocks with :expand modifier are not parsed correctly"
|
||||
|
||||
**ShellSpec syntax example**
|
||||
Please provide an example of the ShellSpec syntax you'd like to see supported:
|
||||
|
||||
```shellspec
|
||||
# Example ShellSpec code that should be supported
|
||||
```
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
A clear description of how this syntax should be parsed or highlighted.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
**Current behavior**
|
||||
How does the parser currently handle this syntax? (if at all)
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
**Use case**
|
||||
Why is this syntax important? How commonly is it used in ShellSpec tests?
|
||||
|
||||
## Additional context
|
||||
|
||||
- Link to ShellSpec documentation for this feature (if available)
|
||||
- Examples from real-world ShellSpec test suites
|
||||
- Any other context or screenshots about the feature request
|
||||
|
||||
63
.github/ISSUE_TEMPLATE/grammar_issue.md
vendored
Normal file
63
.github/ISSUE_TEMPLATE/grammar_issue.md
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
name: Grammar Issue
|
||||
about: Report a specific grammar parsing problem or conflict
|
||||
title: "[GRAMMAR] "
|
||||
labels: grammar, bug
|
||||
assignees: ivuorinen
|
||||
---
|
||||
|
||||
## Grammar Issue Type
|
||||
|
||||
- [ ] Parsing error (code doesn't parse at all)
|
||||
- [ ] Incorrect parse tree structure
|
||||
- [ ] Grammar conflicts during generation
|
||||
- [ ] Performance issue with large files
|
||||
- [ ] Integration issue with tree-sitter-bash
|
||||
|
||||
## ShellSpec code causing the issue
|
||||
|
||||
```shellspec
|
||||
# Paste the problematic ShellSpec code here
|
||||
```
|
||||
|
||||
### Current parse tree output
|
||||
|
||||
If you can run `tree-sitter parse`, please include the current output:
|
||||
|
||||
```text
|
||||
# Current parse tree here
|
||||
```
|
||||
|
||||
### Expected parse tree structure
|
||||
Describe or show what the parse tree should look like:
|
||||
|
||||
```text
|
||||
# Expected parse tree structure here
|
||||
```
|
||||
|
||||
### Grammar generation output
|
||||
|
||||
If this causes issues during `npm run generate`, include any conflict warnings or errors:
|
||||
|
||||
```text
|
||||
# Grammar generation output here
|
||||
```
|
||||
|
||||
## Environment
|
||||
|
||||
- tree-sitter-shellspec version: [e.g. 0.1.0]
|
||||
- tree-sitter CLI version: [e.g. 0.20.8]
|
||||
- Node.js version: [e.g. 18.17.0]
|
||||
- OS: [e.g. macOS 13.5]
|
||||
|
||||
## Impact
|
||||
|
||||
- How does this affect syntax highlighting?
|
||||
- Does it break editor functionality?
|
||||
- Is this blocking real-world usage?
|
||||
|
||||
## Additional context
|
||||
|
||||
- Related to specific ShellSpec features?
|
||||
- Reproducible with minimal example?
|
||||
- Any workarounds discovered?
|
||||
Reference in New Issue
Block a user