You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

884 lines
23 KiB

3 years ago
  1. # Changes in HEAD
  2. ## Changes fixed as part of the switch to zle-line-pre-redraw
  3. The changes in this section were fixed by switching to a `zle-line-pre-redraw`-based
  4. implementation.
  5. Note: The new implementation will only be used on future zsh releases,
  6. numbered 5.8.0.3 and newer, due to interoperability issues with other plugins
  7. (issues #418 and #579). The underlying zsh feature has been available since
  8. zsh 5.2.
  9. Whilst under development, the new implementation was known as the
  10. "feature/redrawhook" topic branch.
  11. - Fixed: Highlighting not triggered after popping a buffer from the buffer stack
  12. (using the `push-line` widget, default binding: `M-q`)
  13. [#40]
  14. - Fixed: Invoking completion when there were no matches removed highlighting
  15. [#90, #470]
  16. - Fixed: Two successive deletes followed by a yank only yanked the latest
  17. delete, rather than both of them
  18. [#150, #151, #160; cf. #183]
  19. - Presumed fixed: Completing `$(xsel)` results in an error message from `xsel`,
  20. with pre-2017 versions of `xsel`. (For 2017 vintage and newer, see the issue
  21. for details.)
  22. [#154]
  23. - Fixed: When the standard `bracketed-paste-magic` widget is in use, pastes were slow
  24. [#295]
  25. - Fixed: No way to prevent a widget from being wrapped
  26. [#324]
  27. - Fixed: No highlighting while cycling menu completion
  28. [#375]
  29. - Fixed: Does not coexist with the `IGNORE_EOF` option
  30. [#377]
  31. - Fixed: The `undefined-key` widget was wrapped
  32. [#421]
  33. - Fixed: Does not coexist with the standard `surround` family of widgets
  34. [#520]
  35. - Fixed: First completed filename doesn't get `path` highlighting
  36. [#632]
  37. ## Other changes
  38. - Add issue #712 to the previous release's changelog (hereinafter).
  39. # Changes in 0.8.0-alpha1-pre-redrawhook
  40. ## Notice about an improbable-but-not-impossible forward incompatibility
  41. Everyone can probably skip this section.
  42. The `master` branch of zsh-syntax-highlighting uses a zsh feature that has not
  43. yet appeared in a zsh release: the `memo=` feature, added to zsh in commit
  44. zsh-5.8-172-gdd6e702ee (after zsh 5.8, before zsh 5.9). In the unlikely event
  45. that this zsh feature should change in an incompatible way before the next
  46. stable zsh release, set `zsh_highlight__memo_feature=0` in your .zshrc files to
  47. disable use of the new feature.
  48. z-sy-h dogfoods the new, unreleased zsh feature because that feature was
  49. added to zsh at z-sy-h's initiative. The new feature is used in the fix
  50. to issue #418.
  51. ## Incompatible changes:
  52. - An unsuccessful completion (a <kbd>⮀ Tab</kbd> press that doesn't change the
  53. command line) no longer causes highlighting to be lost. Visual feedback can
  54. alternatively be achieved by setting the `format` zstyle under the `warnings`
  55. tag, for example,
  56. zstyle ':completion:*:warnings' format '%F{red}No matches%f'
  57. Refer to the [description of the `format` style in `zshcompsys(1)`]
  58. [zshcompsys-Standard-Styles-format].
  59. (#90, part of #245 (feature/redrawhook))
  60. [zshcompsys-Standard-Styles]: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Standard-Styles
  61. [zshcompsys-Standard-Styles-format]: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#index-format_002c-completion-style
  62. ## Other changes:
  63. - Document `$ZSH_HIGHLIGHT_MAXLENGTH`.
  64. [#698]
  65. - Optimize highlighting unquoted words (words that are not in single quotes, double quotes, backticks, or dollar-single-quotes)
  66. [#730]
  67. - Redirection operators (e.g., `<` and `>`) are now highlighted by default
  68. [#646]
  69. - Propertly terminate `noglob` scope in try/always blocks
  70. [#577]
  71. - Don't error out when `KSH_ARRAYS` is set in the calling scope
  72. [#622, #689]
  73. - Literal semicolons in array assignments (`foo=( bar ; baz )`) are now
  74. highlighted as errors.
  75. [3ca93f864fb6]
  76. - Command separators in array assignments (`foo=( bar | baz )`) are now
  77. highlighted as errors.
  78. [#651, 81267ca3130c]
  79. - Support parameter elision in command position (e.g., `$foo ls` where `$foo` is unset or empty)
  80. [#667]
  81. - Don't consider the filename in `sudo -e /path/to/file` to be a command position
  82. [#678]
  83. - Don't look up absolute directory names in $cdpath
  84. [2cc2583f8f12, part of #669]
  85. - Fix `exec 2>&1;` being highlighted as an error.
  86. [#676]
  87. - Fix `: $(<*)` being highlighted as globbing.
  88. [#582]
  89. - Fix `cat < *` being highlighting as globbing when the `MULTIOS` option is unset.
  90. [#583]
  91. - Fix `echo >&2` highlighting the `2` as a filename if a file by that name happened to exist
  92. [#694, part of #645]
  93. - Fix `echo >&-` highlighting the `-` as a filename if a file by that name happened to exist
  94. [part of #645]
  95. - Fix `echo >&p` highlighting the `p` as a filename if a file by that name happened to exist
  96. [part of #645]
  97. - Fix wrong highlighting of unquoted parameter expansions under zsh 5.2 and older
  98. [e165f18c758e]
  99. - Highlight global aliases
  100. [#700]
  101. - Highlight `: =nosuchcommand' as an error (when the `EQUALS` option hasn't been unset).
  102. [#430]
  103. - Highlight reserved word after assignments as errors (e.g., `foo=bar (ls;)`)
  104. [#461]
  105. - Correctly highlight `[[ foo && bar || baz ]]`.
  106. - Highlight non-executable files in command position correctly (e.g., `% /etc/passwd`)
  107. [#202, #669]
  108. - Highlight directories in command position correctly, including `AUTO_CD` support
  109. [#669]
  110. - Recognize `env` as a precommand (e.g., `env FOO=bar ls`)
  111. - Recognize `strace` as a precommand
  112. - Fix an error message on stderr before every prompt when the `WARN_NESTED_VAR` zsh option is set:
  113. `_zsh_highlight_main__precmd_hook:1: array parameter _zsh_highlight_main__command_type_cache set in enclosing scope in function _zsh_highlight_main__precmd_hook`
  114. [#727, #731, #732, #733]
  115. - Fix highlighting of alias whose definitions use a simple command terminator
  116. (such as `;`, `|`, `&&`) before a newline
  117. [#677; had regressed in 0.7.0]
  118. - Highlight arithmetic expansions (e.g., `$(( 42 ))`)
  119. [#607 #649 #704]
  120. - Highlight the parentheses of array assignments as reserved words (`foo=( bar )`).
  121. The `assign` style remains supported and has precedence.
  122. [#585]
  123. - Fix interoperability issue with other plugins that use highlighting. The fix
  124. requires zsh 5.8.0.3 or newer. (zsh 5.8.0.2-dev from the `master` branch,
  125. revision zsh-5.8-172-gdd6e702ee or newer is also fine.)
  126. [#418, https://github.com/okapia/zsh-viexchange/issues/1]
  127. - Improve performance of the `brackets` highlighter.
  128. - Fix highlighting of pre-command redirections (e.g., the `$fn` in `<$fn cat`)
  129. [#712]
  130. # Changes in version 0.7.1
  131. - Remove out-of-date information from the 0.7.0 changelog.
  132. # Changes in version 0.7.0
  133. This is a stable bugfix and feature release. Major new features and changes include:
  134. - Add `ZSH_HIGHLIGHT_DIRS_BLACKLIST` to disable "path" and "path prefix"
  135. highlighting for specific directories
  136. [#379]
  137. - Add the "regexp" highlighter, modelled after the pattern highlighter
  138. [4e6f60063f1c]
  139. - When a word uses globbing, only the globbing metacharacters will be highlighted as globbing:
  140. in `: foo*bar`, only the `*` will be blue.
  141. [e48af357532c]
  142. - Highlight pasted quotes (e.g., `: foo"bar"`)
  143. [dc1b2f6fa4bb]
  144. - Highlight command substitutions (`` : `ls` ``, `: $(ls)`)
  145. [c0e64fe13178 and parents, e86f75a840e7, et al]
  146. - Highlight process substitutions (`: >(nl)`, `: <(pwd)`, `: =(git diff)`)
  147. [c0e64fe13178 and parents, e86f75a840e7, et al]
  148. - Highlight command substitutions inside double quotes (``: "`foo`"``)
  149. [f16e858f0c83]
  150. - Highlight many precommands (e.g., `nice`, `stdbuf`, `eatmydata`;
  151. see `$precommand_options` in the source)
  152. - Highlight numeric globs (e.g., `echo /lib<->`)
  153. - Assorted improvements to aliases highlighting
  154. (e.g.,
  155. `alias sudo_u='sudo -u'; sudo_u jrandom ls`,
  156. `alias x=y y=z z=nosuchcommand; x`,
  157. `alias ls='ls -l'; \ls`)
  158. [f3410c5862fc, 57386f30aec8, #544, and many others]
  159. - Highlight some more syntax errors
  160. [dea05e44e671, 298ef6a2fa30]
  161. - New styles: named file descriptors, `RC_QUOTES`, and unclosed quotes (e.g., `echo "foo<CURSOR>`)
  162. [38c794a978cd, 25ae1c01216c, 967335dfc5fd]
  163. - The 'brackets' highlighting no longer treats quotes specially.
  164. [ecdda36ef56f]
  165. Selected bugfixes include:
  166. - Highlight `sudo` correctly when it's not installed
  167. [26a82113b08b]
  168. - Handle some non-default options being set in zshrc
  169. [b07ada1255b7, a2a899b41b8, 972ad197c13d, b3f66fc8748f]
  170. - Fix off-by-one highlighting in vi "visual" mode (vicmd keymap)
  171. [be3882aeb054]
  172. - The 'yank-pop' widget is not wrapped
  173. [#183]
  174. Known issues include:
  175. - A multiline alias that uses a simple command terminator (such as `;`, `|`, `&&`)
  176. before a newline will incorrectly be highlighted as an error. See issue #677
  177. for examples and workarounds.
  178. [#677]
  179. [UPDATE: Fixed in 0.8.0]
  180. # Changes in version 0.6.0
  181. This is a stable release, featuring bugfixes and minor improvements.
  182. ## Performance improvements:
  183. (none)
  184. ## Added highlighting of:
  185. - The `isearch` and `suffix` [`$zle_highlight` settings][zshzle-Character-Highlighting].
  186. (79e4d3d12405, 15db71abd0cc, b56ee542d619; requires zsh 5.3 for `$ISEARCHMATCH_ACTIVE` / `$SUFFIX_ACTIVE` support)
  187. [zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
  188. - Possible history expansions in double-quoted strings.
  189. (76ea9e1df316)
  190. - Mismatched `if`/`then`/`elif`/`else`/`fi`.
  191. (73cb83270262)
  192. ## Fixed highlighting of:
  193. - A comment line followed by a non-comment line.
  194. (#385, 9396ad5c5f9c)
  195. - An unquoted `$*` (expands to the positional parameters).
  196. (237f89ad629f)
  197. - history-incremental-pattern-search-backward under zsh 5.3.1.
  198. (#407, #415, 462779629a0c)
  199. ## API changes (for highlighter authors):
  200. (none)
  201. ## Developer-visible changes:
  202. - tests: Set the `ALIAS_FUNC_DEF` option for zsh 5.4 compatibility.
  203. (9523d6d49cb3)
  204. ## Other changes:
  205. - docs: Added before/after screenshots.
  206. (cd9ec14a65ec..b7e277106b49)
  207. - docs: Link Fedora package.
  208. (3d74aa47e4a7, 5feed23962df)
  209. - docs: Link FreeBSD port.
  210. (626c034c68d7)
  211. - docs: Link OpenSUSE Build Service packages
  212. (#419, dea1fedc7358)
  213. - Prevent user-defined aliases from taking effect in z-sy-h's own code.
  214. (#390, 2dce602727d7, 8d5afe47f774; and #392, #395, b8fa1b9dc954)
  215. - docs: Update zplug installation instructions.
  216. (#399, 4f49c4a35f17)
  217. - Improve "unhandled ZLE widget 'foo'" error message.
  218. (#409, be083d7f3710)
  219. - Fix printing of "failed loading highlighters" error message.
  220. (#426, ad522a091429)
  221. # Changes in version 0.5.0
  222. ## Performance improvements:
  223. We thank Sebastian Gniazdowski and "m0viefreak" for significant contributions
  224. in this area.
  225. - Optimize string operations in the `main` (default) highlighter.
  226. (#372/3cb58fd7d7b9, 02229ebd6328, ef4bfe5bcc14, #372/c6b6513ac0d6, #374/15461e7d21c3)
  227. - Command word highlighting: Use the `zsh/parameter` module to avoid forks.
  228. Memoize (cache) the results.
  229. (#298, 3ce01076b521, 2f18ba64e397, 12b879caf7a6; #320, 3b67e656bff5)
  230. - Avoid forks in the driver and in the `root` highlighter.
  231. (b9112aec798a, 38c8fbea2dd2)
  232. ## Added highlighting of:
  233. - `pkexec` (a precommand).
  234. (#248, 4f3910cbbaa5)
  235. - Aliases that cannot be defined normally nor invoked normally (highlighted as an error).
  236. (#263 (in part), 28932316cca6)
  237. - Path separators (`/`) — the default behaviour remains to highlight path separators
  238. and path components the same way.
  239. (#136, #260, 6cd39e7c70d3, 9a934d291e7c, f3d3aaa00cc4)
  240. - Assignments to individual positional arguments (`42=foo` to assign to `$42`).
  241. (f4036a09cee3)
  242. - Linewise region (the `visual-line-mode` widget, bound to `V` in zsh's `vi` keymap).
  243. (#267, a7a7f8b42280, ee07588cfd9b)
  244. - Command-lines recalled by `isearch` mode; requires zsh≥5.3.
  245. (#261 (in part); #257; 4ad311ec0a68)
  246. - Command-lines whilst the `IGNORE_BRACES` or `IGNORE_CLOSE_BRACES` option is in effect.
  247. (a8a6384356af, 02807f1826a5)
  248. - Mismatched parentheses and braces (in the `main` highlighter).
  249. (51b9d79c3bb6, 2fabf7ca64b7, a4196eda5e6f, and others)
  250. - Mismatched `do`/`done` keywords.
  251. (b2733a64da93)
  252. - Mismatched `foreach`/`end` keywords.
  253. (#96, 2bb8f0703d8f)
  254. - In Bourne-style function definitions, when the `MULTI_FUNC_DEF` option is set
  255. (which is the default), highlight the first word in the function body as
  256. a command word: `f() { g "$@" }`.
  257. (6f91850a01e1)
  258. - `always` blocks.
  259. (#335, e5782e4ddfb6)
  260. - Command substitutions inside double quotes, `"$(echo foo)"`.
  261. (#139 (in part), c3913e0d8ead)
  262. - Non-alphabetic parameters inside double quotes (`"$$"`, `"$#"`, `"$*"`, `"$@"`, `"$?"`, `"$-"`).
  263. (4afe670f7a1b, 44ef6e38e5a7)
  264. - Command words from future versions of zsh (forward compatibly).
  265. This also adds an `arg0` style that all other command word styles fall back to.
  266. (b4537a972eed, bccc3dc26943)
  267. - Escaped history expansions inside double quotes: `: "\!"`
  268. (28d7056a7a06, et seq)
  269. ## Fixed highlighting of:
  270. - Command separator tokens in syntactically-invalid positions.
  271. (09c4114eb980)
  272. - Redirections with a file descriptor number at command word.
  273. (#238 (in part), 73ee7c1f6c4a)
  274. - The `select` prompt, `$PS3`.
  275. (#268, 451665cb2a8b)
  276. - Values of variables in `vared`.
  277. (e500ca246286)
  278. - `!` as an argument (neither a history expansion nor a reserved word).
  279. (4c23a2fd1b90)
  280. - "division by zero" error under the `brackets` highlighter when `$ZSH_HIGHLIGHT_STYLES` is empty.
  281. (f73f3d53d3a6)
  282. - Process substitutions, `<(pwd)` and `>(wc -l)`.
  283. (#302, 6889ff6bd2ad, bfabffbf975c, fc9c892a3f15)
  284. - The non-`SHORT_LOOPS` form of `repeat` loops: `repeat 42; do true; done`.
  285. (#290, 4832f18c50a5, ef68f50c048f, 6362c757b6f7)
  286. - Broken symlinks (are now highlighted as files).
  287. (#342, 95f7206a9373, 53083da8215e)
  288. - Lines accepted from `isearch` mode.
  289. (#284; #257, #259, #288; 5bae6219008b, a8fe22d42251)
  290. - Work around upstream bug that triggered when the command word was a relative
  291. path, that when interpreted relative to a $PATH directory denoted a command;
  292. the effect of that upstream bug was that the relative path was cached as
  293. a "valid external command name".
  294. (#354, #355, 51614ca2c994, fdaeec45146b, 7d38d07255e4;
  295. upstream fix slated to be released in 5.3 (workers/39104))
  296. - After accepting a line with the cursor on a bracket, the matching bracket
  297. of the bracket under the cursor no longer remains highlighted (with the
  298. `brackets` highlighter).
  299. (4c4baede519a)
  300. - The first word on a new line within an array assignment or initialization is no
  301. longer considered a command position.
  302. (8bf423d16d46)
  303. - Subshells that end at command position, `(A=42)`, `(true;)`.
  304. (#231, 7fb6f9979121; #344, 4fc35362ee5a)
  305. - Command word after array assignment, `a=(lorem ipsum) pwd`.
  306. (#330, 7fb6f9979121)
  307. ## API changes (for highlighter authors):
  308. - New interface `_zsh_highlight_add_highlight`.
  309. (341a3ae1f015, c346f6eb6fb6)
  310. - tests: Specify the style key, not its value, in test expectations.
  311. (a830613467af, fd061b5730bf, eaa4335c3441, among others)
  312. - Module author documentation improvements.
  313. (#306 (in part), 217669270418, 0ff354b44b6e, 80148f6c8402, 364f206a547f, and others)
  314. - The driver no longer defines a `_zsh_highlight_${highlighter}_highlighter_cache`
  315. variable, which is in the highlighters' namespace.
  316. (3e59ab41b6b8, 80148f6c8402, f91a7b885e7d)
  317. - Rename highlighter entry points. The old names remain supported for
  318. backwards compatibility.
  319. (a3d5dfcbdae9, c793e0dceab1)
  320. - tests: Add the "NONE" expectation.
  321. (4da9889d1545, 13018f3dd735, d37c55c788cd)
  322. - tests: consider a test that writes to stderr to have failed.
  323. (#291, 1082067f9315)
  324. ## Developer-visible changes:
  325. - Add `make quiet-test`.
  326. (9b64ad750f35)
  327. - test harness: Better quote replaceables in error messages.
  328. (30d8f92df225)
  329. - test harness: Fix exit code for XPASS.
  330. (bb8d325c0cbd)
  331. - Create [HACKING.md](HACKING.md).
  332. (cef49752fd0e)
  333. - tests: Emit a description for PASS test points.
  334. (6aa57d60aa64, f0bae44b76dd)
  335. - tests: Create a script that generates a test file.
  336. (8013dc3b8db6, et seq; `tests/generate.zsh`)
  337. ## Other changes:
  338. - Under zsh≤5.2, widgets whose names start with a `_` are no longer excluded
  339. from highlighting.
  340. (ed33d2cb1388; reverts part of 186d80054a40 which was for #65)
  341. - Under zsh≤5.2, widgets implemented by a function named after the widget are
  342. no longer excluded from highlighting.
  343. (487b122c480d; reverts part of 776453cb5b69)
  344. - Under zsh≤5.2, shell-unsafe widget names can now be wrapped.
  345. (#278, 6a634fac9fb9, et seq)
  346. - Correct some test expectations.
  347. (78290e043bc5)
  348. - `zsh-syntax-highlighting.plugin.zsh`: Convert from symlink to plain file
  349. for msys2 compatibility.
  350. (#292, d4f8edc9f3ad)
  351. - Document installation under some plugin managers.
  352. (e635f766bef9, 9cab566f539b)
  353. - Don't leak the `PATH_DIRS` option.
  354. (7b82b88a7166)
  355. - Don't require the `FUNCTION_ARGZERO` option to be set.
  356. (#338, 750aebc553f2)
  357. - Under zsh≤5.2, support binding incomplete/nonexistent widgets.
  358. (9e569bb0fe04, part of #288)
  359. - Make the driver reentrant, fixing possibility of infinite recursion
  360. under zsh≤5.2 under interaction with theoretical third-party code.
  361. (#305, d711563fe1bf, 295d62ec888d, f3242cbd6aba)
  362. - Fix warnings when `WARN_CREATE_GLOBAL` is set prior to sourcing zsh-syntax-highlighting.
  363. (z-sy-h already sets `WARN_CREATE_GLOBAL` internally.)
  364. (da60234fb236)
  365. - Warn only once, rather than once per keypress, when a highlighter is unavailable.
  366. (0a9b347483ae)
  367. # Changes in version 0.4.1
  368. ## Fixes:
  369. - Arguments to widgets were not properly dash-escaped. Only matters for widgets
  370. that take arguments (i.e., that are invoked as `zle ${widget} -- ${args}`).
  371. (282c7134e8ac, reverts c808d2187a73)
  372. # Changes in version 0.4.0
  373. ## Added highlighting of:
  374. - incomplete sudo commands
  375. (a3047a912100, 2f05620b19ae)
  376. ```zsh
  377. sudo;
  378. sudo -u;
  379. ```
  380. - command words following reserved words
  381. (#207, #222, b397b12ac139 et seq, 6fbd2aa9579b et seq, 8b4adbd991b0)
  382. ```zsh
  383. if ls; then ls; else ls; fi
  384. repeat 10 do ls; done
  385. ```
  386. (The `ls` are now highlighted as a command.)
  387. - comments (when `INTERACTIVE_COMMENTS` is set)
  388. (#163, #167, 693de99a9030)
  389. ```zsh
  390. echo Hello # comment
  391. ```
  392. - closing brackets of arithmetic expansion, subshells, and blocks
  393. (#226, a59f442d2d34, et seq)
  394. ```zsh
  395. (( foo ))
  396. ( foo )
  397. { foo }
  398. ```
  399. - command names enabled by the `PATH_DIRS` option
  400. (#228, 96ee5116b182)
  401. ```zsh
  402. # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH,
  403. # and 'setopt PATH_DIRS' is in effect
  404. foo/bar
  405. ```
  406. - parameter expansions with braces inside double quotes
  407. (#186, 6e3720f39d84)
  408. ```zsh
  409. echo "${foo}"
  410. ```
  411. - parameter expansions in command word
  412. (#101, 4fcfb15913a2)
  413. ```zsh
  414. x=/bin/ls
  415. $x -l
  416. ```
  417. - the command separators '\|&', '&!', '&\|'
  418. ```zsh
  419. view file.pdf &! ls
  420. ```
  421. ## Fixed highlighting of:
  422. - precommand modifiers at non-command-word position
  423. (#209, 2c9f8c8c95fa)
  424. ```zsh
  425. ls command foo
  426. ```
  427. - sudo commands with infix redirections
  428. (#221, be006aded590, 86e924970911)
  429. ```zsh
  430. sudo -u >/tmp/foo.out user ls
  431. ```
  432. - subshells; anonymous functions
  433. (#166, #194, 0d1bfbcbfa67, 9e178f9f3948)
  434. ```zsh
  435. (true)
  436. () { true }
  437. ```
  438. - parameter assignment statements with no command
  439. (#205, 01d7eeb3c713)
  440. ```zsh
  441. A=1;
  442. ```
  443. (The semicolon used to be highlighted as a mistake)
  444. - cursor highlighter: Remove the cursor highlighting when accepting a line.
  445. (#109, 4f0c293fdef0)
  446. ## Removed features:
  447. - Removed highlighting of approximate paths (`path_approx`).
  448. (#187, 98aee7f8b9a3)
  449. ## Other changes:
  450. - main highlighter refactored to use states rather than booleans.
  451. (2080a441ac49, et seq)
  452. - Fix initialization when sourcing `zsh-syntax-highlighting.zsh` via a symlink
  453. (083c47b00707)
  454. - docs: Add screenshot.
  455. (57624bb9f64b)
  456. - widgets wrapping: Don't add '--' when invoking widgets.
  457. (c808d2187a73) [_reverted in 0.4.1_]
  458. - Refresh highlighting upon `accept-*` widgets (`accept-line` et al).
  459. (59fbdda64c21)
  460. - Stop leaking match/mbegin/mend to global scope (thanks to upstream
  461. `WARN_CREATE_GLOBAL` improvements).
  462. (d3deffbf46a4)
  463. - 'make install': Permit setting `$(SHARE_DIR)` from the environment.
  464. (e1078a8b4cf1)
  465. - driver: Tolerate KSH_ARRAYS being set in the calling context.
  466. (#162, 8f19af6b319d)
  467. - 'make install': Install documentation fully and properly.
  468. (#219, b1619c001390, et seq)
  469. - docs: Improve 'main' highlighter's documentation.
  470. (00de155063f5, 7d4252f5f596)
  471. - docs: Moved to a new docs/ tree; assorted minor updates
  472. (c575f8f37567, 5b34c23cfad5, et seq)
  473. - docs: Split README.md into INSTALL.md
  474. (0b3183f6cb9a)
  475. - driver: Report `$ZSH_HIGHLIGHT_REVISION` when running from git
  476. (84734ba95026)
  477. ## Developer-visible changes:
  478. - Test harness converted to [TAP](http://testanything.org/tap-specification.html) format
  479. (d99aa58aaaef, et seq)
  480. - Run each test in a separate subprocess, isolating them from each other
  481. (d99aa58aaaef, et seq)
  482. - Fix test failure with nonexisting $HOME
  483. (#216, b2ac98b98150)
  484. - Test output is now colorized.
  485. (4d3da30f8b72, 6fe07c096109)
  486. - Document `make install`
  487. (a18a7427fd2c)
  488. - tests: Allow specifying the zsh binary to use.
  489. (557bb7e0c6a0)
  490. - tests: Add 'make perf' target
  491. (4513eaea71d7)
  492. - tests: Run each test in a sandbox directory
  493. (c01533920245)
  494. # Changes in version 0.3.0
  495. ## Added highlighting of:
  496. - suffix aliases (requires zsh 5.1.1 or newer):
  497. ```zsh
  498. alias -s png=display
  499. foo.png
  500. ```
  501. - prefix redirections:
  502. ```zsh
  503. <foo.txt cat
  504. ```
  505. - redirection operators:
  506. ```zsh
  507. echo > foo.txt
  508. ```
  509. - arithmetic evaluations:
  510. ```zsh
  511. (( 42 ))
  512. ```
  513. - $'' strings, including \x/\octal/\u/\U escapes
  514. ```zsh
  515. : $'foo\u0040bar'
  516. ```
  517. - multiline strings:
  518. ```zsh
  519. % echo "line 1
  520. line 2"
  521. ```
  522. - string literals that haven't been finished:
  523. ```zsh
  524. % echo "Hello, world
  525. ```
  526. - command words that involve tilde expansion:
  527. ```zsh
  528. % ~/bin/foo
  529. ```
  530. ## Fixed highlighting of:
  531. - quoted command words:
  532. ```zsh
  533. % \ls
  534. ```
  535. - backslash escapes in "" strings:
  536. ```zsh
  537. % echo "\x41"
  538. ```
  539. - noglob after command separator:
  540. ```zsh
  541. % :; noglob echo *
  542. ```
  543. - glob after command separator, when the first command starts with 'noglob':
  544. ```zsh
  545. % noglob true; echo *
  546. ```
  547. - the region (vi visual mode / set-mark-command) (issue #165)
  548. - redirection and command separators that would be highlighted as `path_approx`
  549. ```zsh
  550. % echo foo;‸
  551. % echo <
  552. ```
  553. (where `‸` represents the cursor location)
  554. - escaped globbing (outside quotes)
  555. ```zsh
  556. % echo \*
  557. ```
  558. ## Other changes:
  559. - implemented compatibility with zsh's paste highlighting (issue #175)
  560. - `$?` propagated correctly to wrapped widgets
  561. - don't leak $REPLY into global scope
  562. ## Developer-visible changes:
  563. - added makefile with `install` and `test` targets
  564. - set `warn_create_global` internally
  565. - document release process
  566. # Version 0.2.1
  567. (Start of changelog.)