diff --git a/HACKING.md b/HACKING.md index 5ce72d8..8626305 100644 --- a/HACKING.md +++ b/HACKING.md @@ -6,7 +6,7 @@ core driver (`zsh-syntax-highlighting.zsh`), on the highlighters in the distribution, and on the test suite. It does not target third-party highlighter authors (although they may find it an interesting read). -The 'main' highlighter +The `main` highlighter ---------------------- The following function `pz` is useful when working on the `main` highlighting: @@ -25,6 +25,25 @@ The following function `pz` is useful when working on the `main` highlighting: It prints, for each argument, its token breakdown, similar to how the main loop of the `main` highlighter sees it. +Testing the `brackets` highlighter +---------------------------------- + +Since the test harness empties `ZSH_HIGHLIGHT_STYLES` and the `brackets` +highlighter interrogates `ZSH_HIGHLIGHT_STYLES` to determine how to highlight, +tests must set the `bracket-level-#` keys themselves. For example: + + ZSH_HIGHLIGHT_STYLES[bracket-level-1]= + ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + + BUFFER='echo ({x})' + + expected_region_highlight=( + "6 6 bracket-level-1" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } + "10 10 bracket-level-1" # ) + ) + IRC channel ----------- diff --git a/highlighters/brackets/test-data/mismatch-patentheses.zsh b/highlighters/brackets/test-data/mismatch-patentheses.zsh index f0991b0..f40226f 100644 --- a/highlighters/brackets/test-data/mismatch-patentheses.zsh +++ b/highlighters/brackets/test-data/mismatch-patentheses.zsh @@ -27,6 +27,9 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + BUFFER='echo ({x}]' expected_region_highlight=( diff --git a/highlighters/brackets/test-data/nested-parentheses.zsh b/highlighters/brackets/test-data/nested-parentheses.zsh index b3f531b..413394f 100644 --- a/highlighters/brackets/test-data/nested-parentheses.zsh +++ b/highlighters/brackets/test-data/nested-parentheses.zsh @@ -27,6 +27,10 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= +ZSH_HIGHLIGHT_STYLES[bracket-level-3]= + BUFFER='echo $(echo ${(z)array})' expected_region_highlight=( diff --git a/highlighters/brackets/test-data/simple-parentheses.zsh b/highlighters/brackets/test-data/simple-parentheses.zsh index 3fc66df..186d0b9 100644 --- a/highlighters/brackets/test-data/simple-parentheses.zsh +++ b/highlighters/brackets/test-data/simple-parentheses.zsh @@ -27,6 +27,9 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + BUFFER='echo ({x})' expected_region_highlight=( diff --git a/highlighters/brackets/test-data/unclosed-patentheses.zsh b/highlighters/brackets/test-data/unclosed-patentheses.zsh index e1a634a..941d092 100644 --- a/highlighters/brackets/test-data/unclosed-patentheses.zsh +++ b/highlighters/brackets/test-data/unclosed-patentheses.zsh @@ -27,6 +27,9 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= +ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + BUFFER='echo ({x}' expected_region_highlight=( diff --git a/highlighters/brackets/test-data/unclosed-patentheses2.zsh b/highlighters/brackets/test-data/unclosed-patentheses2.zsh index 1a1937f..41b6836 100644 --- a/highlighters/brackets/test-data/unclosed-patentheses2.zsh +++ b/highlighters/brackets/test-data/unclosed-patentheses2.zsh @@ -27,6 +27,8 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= + BUFFER='echo {x})' expected_region_highlight=( diff --git a/tests/test-highlighting.zsh b/tests/test-highlighting.zsh index d08237f..08912c1 100755 --- a/tests/test-highlighting.zsh +++ b/tests/test-highlighting.zsh @@ -153,6 +153,7 @@ fi # Process each test data file in test data directory. integer something_failed=0 +ZSH_HIGHLIGHT_STYLES=() for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do run_test "$data_file" | tee >($results_filter | ${0:A:h}/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -Eq '^not ok|^ok.*# TODO' && (( something_failed=1 )) (( $pipestatus[1] )) && exit 2