EmilySeville7cfg · 2022-12-20 11:13
While the official [documentation](https://www.gnu.org/software/emacs/manual/html_node/cl/Structures.html) lists just 3 slot options: `:read-only`, `:type`, and `:documentation`.
https://preview.redd.it/ua5wwfq4d17a1.png?width=1920&format=png&auto=webp&s=56952dfdafa0417cb109b74f104c736be2908812
Is it a feature? There is also note that: Other slot options are currently ignored. Is it a compatibility feature with other Lisp dialects?
JDRiverRun · 2022-12-20 20:14
The emacs-lisp completion backend (which company is using) is just looking through the entire obarray (global symbols list) for matching keys. This is not an LSP server, it doesn't look inside your data structure and understand what slots it has.
EmilySeville7cfg · 2022-12-20 20:24
Is there any extension to address this problem? I [can't find](https://github.com/emacs-lsp?q=lisp&type=all&language=&sort=) anything here.
JDRiverRun · 2022-12-20 20:50
Not that I know of. Those are clients. I'm not aware of an LSP *server* for elisp. Since there is not much point editing elisp outside of Emacs, it would be strange not to rely on Emacs' in-built knowledge of its own symbol table.
One solution to the "not yet defined" problem — i.e. trying to complete on symbols and names that are not yet known to Emacs internally (i.e. not *interned*) — is to [add dabbrev results](https://github.com/minad/corfu/wiki#using-cape-to-tweak-and-combine-capfs) to your completion results. But this will simply append more things to complete based on what's in buffers, not result in some kind of "static analysis of structures".