mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-02-06 10:56:38 +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:
29
test/spec/18.const_directive_spec.sh
Normal file
29
test/spec/18.const_directive_spec.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user