Files
tree-sitter-shellspec/test/spec/18.const_directive_spec.sh
Ismo Vuorinen c8ba576b4e 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
2026-01-04 15:32:39 +02:00

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