Ah, yes, it appear that the whitespace got lost in the email for some
reason. I'll try attaching it to this email.
To test it, I've been using the following interactive function:
(defun json-mode-show-path ()
"Show the path to the JSON value under point."
(interactive)
(let ((path (json-path-to-position (point))))
(if path
(let ((formatted-path
(json-mode--format-path (plist-get path :path))))
(pulse-momentary-highlight-region
(plist-get path :match-start)
(plist-get path :match-end))
(message formatted-path)
(kill-new formatted-path))
(message "Not a JSON value"))))
(defun json-mode--format-path (path)
"Return PATH formatted as a JSON data selector.
PATH should be a list of keys, which can be either strings or
integers."
(mapconcat (lambda (key) (format "[%S]" key)) path ""))
It's also included it in json-mode.el:
I agree that would be bad. I'll try to produce some benchmarks when