mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-01-26 11:43:59 +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
30 lines
969 B
Bash
30 lines
969 B
Bash
#shellcheck shell=sh
|
|
|
|
%const NAME: value
|
|
# shellcheck disable=SC2288
|
|
% MAJOR_VERSION: "${SHELLSPEC_VERSION%%.*}"
|
|
# % OK: "$(echo_ok)" # echo_ok not found
|
|
|
|
# %const (% is short hand) directive is define constant value.
|
|
# The characters that can be used for variable name is upper capital, number
|
|
# and underscore only. It can not be define inside of the example group or
|
|
# the example.
|
|
#
|
|
# The timing of evaluation of the value is the specfile translation process.
|
|
# So you can access shellspec variables, but you can not access variable or
|
|
# function in the specfile.
|
|
#
|
|
# This feature assumed use with conditional skip. The conditional skip may runs
|
|
# outside of the examples. As a result, sometime you may need variables defined
|
|
# outside of the examples.
|
|
|
|
Describe '%const directive'
|
|
echo_ok() { echo ok; }
|
|
version_check() { [ "$MAJOR_VERSION" -lt "$1" ]; }
|
|
|
|
Skip if 'too old version' version_check 1
|
|
Example
|
|
The variable NAME should eq 'value'
|
|
End
|
|
End
|