RahulMJ
3 hours ago
A bit of extra info:
- `ts` stands for "tree-sitter", meaning this mode uses tree-sitter under the hood, which is, among other things, very performant.
- There's support for the CommonMark spec and GFM, so things like `- [ ]` checkboxes and ~~strikethrough~~ work out of the box, along with many other small QoL features.
- This mode is BUILT-IN, so no extra packages are needed.
- This is currently in the experimental phase, so users need to "opt in" and load the mode to play with it, hence the first part of the guide.
dleslie
an hour ago
Tree sitter support is half baked in the same way official LSP support is, only kind of worse.
Eglot won't help you get your system ready for LSP work, it will only avail itself if what's there. It doesn't even auto detect and configure that, either. There's no user prompting, so you'll have to read the docs to know that this even needs to be done.
Similarly, tree sitter support doesn't include the grammars! And those aren't typically sitting in your package repository, so users have to find a grammar and compile it themselves. There's not even a good recommendation given by Emacs on where to get them, leaving users to hope that whatever repository showed up on a Google search is both in good working order and safe to use.
It's really quite a failure on Emacs.
chroma_zone
4 minutes ago
If it can't find an LSP binary, Eglot will prompt you to pick one, and tell you which one it was looking for. That seems reasonable to me. I wouldn't want Emacs to download and install random binaries on my system automatically.
femiagbabiaka
an hour ago
In Emacs 31 none of what you’re saying is true. Grammars auto install and setting them up is easy.
https://www.reddit.com/r/emacs/comments/1utghab/treesitter_s...
dleslie
an hour ago
Well that's a nice change; I'm still on Emacs 30.
But note that this is not the default. Users have to enable that behaviour, and know to enable it. That's a bad default.
BeetleB
16 minutes ago
I speak only for myself and not the Emacs team, but ... IMO it shouldn't do this by default - unless there is a clear "winner" among all the choices.
IIRC, for eglot I had to install a Python language server. There are a bunch of them. Why would I want it to pick one by default?
I don't know if Emacs will ever have an IDE with TS and LSP working "out of the box" without some configuration. From my experience with Eglot, if it were enabled by default, it would confuse the heck out of some users who just want to, say, edit a Python script.
There are always opinionated releases like Doom Emacs or Spacemacs that can set whatever nice defaults you think should be there. Leave vanilla Emacs to be, well, vanilla. Emacs, while it can be a decent IDE, is not an IDE and shouldn't default to being one.
KallDrexx
6 minutes ago
I recently switched from full IDE to Emacs (wrote up about the things I learned at https://github.com/KallDrexx/emacs-zero-to-ide-journey/blob/...)
Typescript is a perfect example of why Emacs shouldn't own that setup. Typescript version 6 uses the "typescript-language-server" which is a totally stand alone nom package for lsp support.
Typescript 7, is incompatible with typescript-language-server and the compiler itself now acts as a lsp.
If Emacs handles that all by default it then needs to handle versioning of each language server itself across all operating systems, handle cases when different machines have different npm version managers, upgrades, etc...
It's not impossible but it's a lot to ask, and it requires more frequent version upgrades just to keep things in sync.
I couldn't even use the built in version of eglot and had to use ELPA version for bug fixes that affect c# LSP support that were committed to the package back in December.
dleslie
13 minutes ago
Emacs makes many opinionated choices about defaults; if it didn't, it would launch to little more than an elisp REPL by default.
What's important is that _you can change it_. Good defaults ensure that Emacs doesn't repel new users and casual users and users who are not interested in fiddling.
And this isn't a matter of color theme default, or font default; this is a shipped feature that _does not function_ without changes to the defaults! By default, it does not work.
tpmoney
7 minutes ago
“ask” mode for installing tree-sitter grammars is the default setting. Tree-sitter modes broadly aren’t enabled by default, but that seems at least consistent with eMacs defaulting to very few modes enabled by default.
lurght
2 hours ago
I think in 31 registering the file types isnt necessary any more, the mode opens automatically for me (and i did manually delete the old markdown-mode)