5 ms·
I think the only real way you can run make a language server understand comptime code is using the compiler as a library, similar to how Nim does it - nimsugges
by Tiberium 4y ago
I think the only real way you can run make a language server understand comptime code is using the compiler as a library, similar to how Nim does it - nimsuggest (the tool for autocompletion, definitions, etc) is basically the compiler itself with some nimsuggest-specific stuff, so it understand macros, templates, compile time code evaluation, etc.
- gpderetta 4y agoIsn't that's how most LSP servers are implemented? I'm only vaguely familiar with clangd.
- lillecarl 4y agoIt's moving in that direction, but far from all are based on their compiler still.
- ranfdev 4y agoYes. An LSP has to work along with the compiler, or it has to become an alternative compiler. For example, from the article "Why LSP?" [1] "It is known that compilers are complicated, and a language server is a compiler and then some." [1]: https://matklad.github.io//2022/04/25/why-lsp.html https://matklad.github.io//2022/04/25/why-lsp.html