mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-03-12 06:02:41 +00:00
- 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
103 lines
1.6 KiB
Markdown
103 lines
1.6 KiB
Markdown
# Suggested Commands
|
|
|
|
## Development Commands
|
|
|
|
### NPM Scripts (Preferred)
|
|
|
|
```bash
|
|
# Quick development cycle
|
|
npm run dev
|
|
|
|
# Generate parser from grammar
|
|
npm run generate
|
|
npm run build
|
|
|
|
# Run tests
|
|
npm test
|
|
|
|
# Interactive grammar testing
|
|
npm run web
|
|
|
|
# Clean and rebuild
|
|
npm run clean
|
|
npm run rebuild
|
|
```
|
|
|
|
### Tree-sitter Direct Commands
|
|
|
|
```bash
|
|
# Generate the parser from grammar.js
|
|
tree-sitter generate
|
|
|
|
# Test the grammar against test files
|
|
tree-sitter test
|
|
|
|
# Parse a specific file to debug
|
|
tree-sitter parse <file>
|
|
|
|
# Web UI for testing grammar
|
|
tree-sitter web-ui
|
|
|
|
# Clean generated files
|
|
rm -rf src/parser.c src/grammar.json src/node-types.json
|
|
```
|
|
|
|
### Linting and Formatting
|
|
|
|
```bash
|
|
# Comprehensive linting (preferred)
|
|
npm run lint
|
|
|
|
# Specific linters
|
|
npm run lint:yaml
|
|
npm run lint:markdown
|
|
|
|
# Run pre-commit hooks manually
|
|
npm run precommit
|
|
|
|
# Direct linter commands
|
|
yamllint .
|
|
markdownlint . --config .markdownlint.json --fix
|
|
shellcheck **/*.sh
|
|
```
|
|
|
|
### Git and Version Control
|
|
|
|
```bash
|
|
# Standard git workflow
|
|
git add .
|
|
git commit -m "message"
|
|
git push
|
|
|
|
# Pre-commit hooks run automatically on commit
|
|
```
|
|
|
|
## System Commands (Darwin/macOS)
|
|
|
|
- `ls` - list files
|
|
- `find` - find files/directories
|
|
- `grep` - search text patterns
|
|
- `cd` - change directory
|
|
- `pwd` - print working directory
|
|
- `which` - locate command
|
|
|
|
## Node.js/npm Commands
|
|
|
|
```bash
|
|
# Install dependencies
|
|
npm install
|
|
|
|
# Using nvm (available at /Users/ivuorinen/.local/share/nvm/nvm.sh)
|
|
nvm use
|
|
```
|
|
|
|
## Test Development
|
|
|
|
```bash
|
|
# Run specific test patterns (if needed)
|
|
tree-sitter test --debug
|
|
|
|
# Parse sample files for debugging
|
|
echo "Describe 'test' ... End" | tree-sitter parse
|
|
```
|