zsh-syntax-highlighting/changelog.md

6.5 KiB

up to bc7f8ea433

Changes in version 0.5.0

Added highlighting of:

  • 'pkexec' (a precommand). (#248, 4f3910cbba)

  • Aliases that cannot be defined normally nor invoked normally (highlighted as an error) (#263 (in part), 28932316cc)

Fixed highlighting of:

  • Command separator tokens in syntactically-invalid positions. (09c4114eb9)

  • Redirections with a file descriptor number at command word. (#238 (in part), 73ee7c1f6c)

  • The select prompt, $PS3. (#268, 451665cb2a)

  • Values of variables in vared. (e500ca2462)

  • ! as an argument (neither a history expansion nor a reserved word). (4c23a2fd1b)

API changes (for highlighter authors):

Developer-visible changes:

  • Add make quiet-test. (9b64ad750f)

  • test harness: Better quote replaceables in error messages. (30d8f92df2)

Other changes:

  • Under zsh≤5.2, widgets whose names start with a _ are no longer excluded from highlighting. (ed33d2cb1388; reverts part of 186d80054a which was for #65)

  • Under zsh≤5.2, widgets implemented by a function named after the widget are no longer excluded from highlighting. (487b122c480d; reverts part of 776453cb5b)

  • Under zsh≤5.2, shell-unsafe widget names can now be wrapped. (#278, 6a634fac9f, et seq)

Changes in version 0.4.1

Fixes:

  • Arguments to widgets were not properly dash-escaped. Only matters for widgets that take arguments (i.e., that are invoked as zle ${widget} -- ${args}). (282c7134e8, reverts c808d2187a)

Changes in version 0.4.0

Added highlighting of:

  • incomplete sudo commands (a3047a9121, 2f05620b19)

      sudo;
      sudo -u;
    
  • command words following reserved words (#207, #222, b397b12ac1 et seq, 6fbd2aa957 et seq, 8b4adbd991)

      if ls; then ls; else ls; fi
      repeat 10 do ls; done
    

    (The ls are now highlighted as a command.)

  • comments (when INTERACTIVE_COMMENTS is set) (#163, #167, 693de99a90)

      echo Hello # comment
    
  • closing brackets of arithmetic expansion, subshells, and blocks (#226, a59f442d2d, et seq)

      (( foo ))
      ( foo )
      { foo }
    
  • command names enabled by the PATH_DIRS option (#228, 96ee5116b1)

      # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH,
      # and 'setopt PATH_DIRS' is in effect
      foo/bar
    
  • parameter expansions with braces inside double quotes (#186, 6e3720f39d)

      echo "${foo}"
    
  • parameter expansions in command word (#101, 4fcfb15913)

      x=/bin/ls
      $x -l
    
  • the command separators '|&', '&!', '&|'

      view file.pdf &!  ls
    

Fixed highlighting of:

  • precommand modifiers at non-command-word position (#209, 2c9f8c8c95)

      ls command foo
    
  • sudo commands with infix redirections (#221, be006aded5, 86e9249709)

      sudo -u >/tmp/foo.out user ls
    
  • subshells; anonymous functions (#166, #194, 0d1bfbcbfa, 9e178f9f39)

      (true)
      () { true }
    
  • parameter assignment statements with no command (#205, 01d7eeb3c7)

      A=1;
    

    (The semicolon used to be highlighted as a mistake)

  • cursor highlighter: Remove the cursor highlighting when accepting a line. (#109, 4f0c293fde)

Removed features:

  • Removed highlighting of approximate paths (path_approx). (#187, 98aee7f8b9)

Other changes:

  • main highlighter refactored to use states rather than booleans. (2080a441ac, et seq)

  • Fix initialization when sourcing zsh-syntax-highlighting.zsh via a symlink (083c47b007)

  • docs: Add screenshot. (57624bb9f6)

  • widgets wrapping: Don't add '--' when invoking widgets. (c808d2187a) [reverted in 0.4.1]

  • Refresh highlighting upon accept-* widgets (accept-line et al). (59fbdda64c)

  • Stop leaking match/mbegin/mend to global scope (thanks to upstream WARN_CREATE_GLOBAL improvements). (d3deffbf46)

  • 'make install': Permit setting $(SHARE_DIR) from the environment. (e1078a8b4c)

  • driver: Tolerate KSH_ARRAYS being set in the calling context. (#162, 8f19af6b31)

  • 'make install': Install documentation fully and properly. (#219, b1619c0013, et seq)

  • docs: Improve 'main' highlighter's documentation. (00de155063, 7d4252f5f5)

  • docs: Moved to a new docs/ tree; assorted minor updates (c575f8f375, 5b34c23cfa, et seq)

  • docs: Split README.md into INSTALL.md (0b3183f6cb)

  • driver: Report $ZSH_HIGHLIGHT_REVISION when running from git (84734ba950)

Developer-visible changes:

Changes in version 0.3.0

Added highlighting of:

  • suffix aliases (requires zsh 5.1.1 or newer):

      alias -s png=display
      foo.png
    
  • prefix redirections:

      <foo.txt cat
    
  • redirection operators:

      echo > foo.txt
    
  • arithmetic evaluations:

      (( 42 ))
    
  • $'' strings, including \x/\octal/\u/\U escapes

      : $'foo\u0040bar'
    
  • multiline strings:

      % echo "line 1
      line 2"
    
  • string literals that haven't been finished:

      % echo "Hello, world
    
  • command words that involve tilde expansion:

      % ~/bin/foo
    

Fixed highlighting of:

  • quoted command words:

      % \ls
    
  • backslash escapes in "" strings:

      % echo "\x41"
    
  • noglob after command separator:

      % :; noglob echo *
    
  • glob after command separator, when the first command starts with 'noglob':

      % noglob true; echo *
    
  • the region (vi visual mode / set-mark-command) (issue #165)

  • redirection and command separators that would be highlighted as path_approx

      % echo foo;‸
      % echo <‸
    

    (where represents the cursor location)

  • escaped globbing (outside quotes)

      % echo \*
    

Other changes:

  • implemented compatibility with zsh's paste highlighting (issue #175)

  • $? propagated correctly to wrapped widgets

  • don't leak $REPLY into global scope

Developer-visible changes:

  • added makefile with install and test targets

  • set warn_create_global internally

  • document release process

Version 0.2.1

(Start of changelog.)