Variable: eshell-parse-argument-hook

eshell-parse-argument-hook is a customizable variable defined in esh-arg.el.gz.

Value

(eshell-parse-special-reference
 eshell-parse-number
 eshell-parse-integer
 eshell-parse-range-token
 eshell-parse-non-special
 eshell-parse-whitespace
 eshell-parse-comment
 eshell-parse-backslash
 eshell-parse-literal-quote
 eshell-parse-double-quote
 eshell-parse-delimiter)

Documentation

Define how to process Eshell command line arguments.

When each function on this hook is called, point will be at the current position within the argument list. The function should either return nil, meaning that it did no argument parsing, or it should return the result of the parse as a sexp. If the function did do argument parsing, but the result was nothing at all, it should return eshell-empty-token. The function is also responsible for moving the point forward to reflect the amount of input text that was parsed.

If the hook determines that it has reached the end of an argument, it should call eshell-finish-arg to complete processing of the current argument and proceed to the next.

If no function handles the current character at point, it will be treated as a literal character.

Source Code

;; Defined in /usr/src/emacs/lisp/eshell/esh-arg.el.gz
(defcustom eshell-parse-argument-hook
  '(;; A term such as #<buffer NAME>, or #<process NAME> is a buffer
    ;; or process reference.
    eshell-parse-special-reference
    ;; Numbers convert to numbers if they stand alone.
    eshell-parse-number
    ;; Integers convert to numbers if they stand alone or are part of a
    ;; range expression.
    eshell-parse-integer
    ;; Range tokens go between integers and denote a half-open range.
    eshell-parse-range-token
    ;; Parse any non-special characters, based on the current context.
    eshell-parse-non-special
    ;; Whitespace is an argument delimiter.
    eshell-parse-whitespace
    ;; ... so is a comment.
    eshell-parse-comment
    ;; Parse backslash and the character after.
    eshell-parse-backslash
    ;; Text beginning with ' is a literally quoted.
    eshell-parse-literal-quote
    ;; Text beginning with " is interpolably quoted.
    eshell-parse-double-quote
    ;; Delimiters that separate individual commands.
    eshell-parse-delimiter)
  "Define how to process Eshell command line arguments.
When each function on this hook is called, point will be at the
current position within the argument list.  The function should either
return nil, meaning that it did no argument parsing, or it should
return the result of the parse as a sexp.  If the function did do
argument parsing, but the result was nothing at all, it should return
`eshell-empty-token'.  The function is also responsible for moving the
point forward to reflect the amount of input text that was parsed.

If the hook determines that it has reached the end of an argument, it
should call `eshell-finish-arg' to complete processing of the current
argument and proceed to the next.

If no function handles the current character at point, it will be
treated as a literal character."
  :type 'hook
  :group 'eshell-arg)