Previous: , Up: Advanced server configuration [Contents][Index]


5.3 JSONRPC objects in Elisp

Emacs’s preferred way of representing JSON is via Lisp lists. In Eglot, the syntax of this list is the simplest possible (the one with fewer parenthesis), a plist (see Property Lists in GNU Emacs Lisp Reference Manual).

The plist may be arbitrarily complex, and generally containing other keyword-value property sub-plists corresponding to JSON sub-objects.

For representing the JSON leaf values true, false, null and {}, you can use the Lisp values t, :json-false, nil, and eglot-{}, respectively. JSON arrays are represented as Elisp vectors surrounded by square brackets (see Vectors in GNU Emacs Lisp Reference Manual).

For example, the plist

(:pylsp (:plugins (:jedi_completion (:include_params t
 :fuzzy t
 :cache_for ["pandas" "numpy"])
 :pylint (:enabled :json-false)))
 :gopls (:usePlaceholders t))

is serialized by Eglot to the following JSON text:

{
 "pylsp": {
 "plugins": {
 "jedi_completion": {
 "include_params": true,
 "fuzzy": true,
 "cache_for": [ "pandas", "numpy" ]
 },
 "pylint": {
 "enabled": false
 }
 }
 },
 "gopls": {
 "usePlaceholders": true
 }
}

AltStyle によって変換されたページ (->オリジナル) /