reddit / emacs
I've been working on a new Emacs extension that's aim is to provide useful information about a symbol inside a single panel. The plan is to publish the first version on Monday. What do you guys think?
VernonGrant · 2022-06-21 15:18
nv-elisp · 2022-06-21 16:46
I think you should make an announcement when you're ready instead of announcement about an announcement.
Drack37 · 2022-06-21 16:48
Looks promising! Symbol information in real-time is a feature I miss in my current configuration. Do you guys have any suggestion by the way? Anyway, I will definitely look at your extension, it feels informative, not too intrusive (can it be configured though?) and fast!
VernonGrant · 2022-06-21 17:05
Yeah you're right... just wanted to share it :-)
VernonGrant · 2022-06-21 17:10
You can take a look at dumb jump, it's awesome. What type of configuration options do you have in mind?
Drack37 · 2022-06-21 17:58
Thank you for the tips, I'll look at it too! I was thinking about visual configuration of the information buffer: which side, vertical/horizontal, size, sections (file / project / buffer)...
konrad1977 · 2022-06-21 19:37
I think its great that you shared, you can get valuable feedback before releasing it. Keep it up. Looking forward to try it.
TheGramm · 2022-06-21 21:09
Panel is not emacs terminology, that would be window in thia case. You could even make it configurable as either a window or a frame for people who use their wm to manage different application windows
NFVblog · 2022-06-21 22:49
great workflow
alisson_lisboa · 2022-06-21 22:54
Very nice! When you finish it, please, let me know!
rgmundo524 · 2022-06-21 23:13
Oooh any chance this could be used in a separate frame?!
Either way on Monday I'll be looking for it.
arthurno1 · 2022-06-22 00:42
When you say "useful information about a symbol", what is useful information, and what are symbols in your use case?
You seem to be displaying references to variables in sources in the video. Is that only info about symbols you are interested in, or just part? Is it php only, or language independent? In the case of a general framework to display symbol information, you probably wish to take a look at lsp.
If you are just looking to display references to/from, then you probably wish to take a look at xref and make another backend for it if you are missing something in existing ones.
VernonGrant · 2022-06-22 01:09
Thanks for the feedback, totally aware of everything you stated. For the first version it will be only reference information. But once the base is stable, I plan on showing the documentation and implementation of a symbol. Basically any information that can save time will be added. It's language independent and I actually created this because LSP is not suitable for my workflow. I also don't like losing focus when jumping to definitions. But I'll explain more in the release readme.
VernonGrant · 2022-06-22 01:24
I see, the first version will have configuration options for window position and size. It will also provide some hooks that can be used add custom sections to the panel. And you will be able to customize the file globs used for each major mode (which file type to search). I have a few more ideas, but I'm trying to keep simple for the first version.
VernonGrant · 2022-06-22 01:26
Yes, the correct terminology is window.
VernonGrant · 2022-06-22 01:26
Will do!
VernonGrant · 2022-06-22 01:27
I'm not sure, let me look into that. Would be awesome for people with dual monitors.
arthurno1 · 2022-06-22 01:38
Sure I understand.
> I actually created this because LSP is not suitable for my workflow.
Not to discourage you, but it can be lots of work to implement that for all the different languages, especially for some compiled languages like c and c++. When I said LSP I didn't mean the emacs package LSP, but [the language server protocol](https://microsoft.github.io/language-server-protocol/)) in general, since it is meant to solve exactly that problem you are describing.
> I also don't like losing focus when jumping to definitions.
LSP (the package) is not the only lsp client for Emacs. You could either implement your own lsp client too, or adapt some of the existing lsp clients, of which LSP is just but one, to do what you want it the way you want it.
VernonGrant · 2022-06-22 02:49
>Not to discourage you, but it can be lots of work to implement that for all the different languages, especially for some compiled languages like c and c++. When I said LSP I didn't mean the emacs package LSP, but the language server protocol) in general, since it is meant to solve exactly that problem you are describing.
I totally understand your concerns, what I mean to say is that LSP (the language server protocol) will never be suitable for my personal workflow. I use terminal Emacs in combination with Tmux and have around 40 (sessions) projects that I'm actively working on. Spinning up language servers for all these different projects is very resource intensive and not to mention a nightmare to configure.
But that does not mean I plan on building an LSP replacement, that wouldn't be a good idea :-) I still need to come up with concrete solutions for things such as getting documentation and implementation details, but its definitely not going to be as sophisticated as LSP in terms of having context awareness and things like that. But who knows I might end up using LSP if simpler solution can't be found.
KittyKutie · 2022-06-22 05:51
This is super cool!
arthurno1 · 2022-06-22 07:23
> Spinning up language servers for all these different projects is very resource intensive and not to mention a nightmare to configure.
Alright, I understand. Yeah, about 40 different servers at the same time sounds like quite a lot. Good luck, then; you have lots of work in front of you :). Will be interesting to see what you come up with.
itistheblurstoftimes · 2022-06-23 00:47
He's excited about an emacs package he worked on. Lighten up. But you're also right.
VernonGrant · 2022-06-26 12:29
Hi All, I just finished the first release version of `Sidekick.el`. If there's anyone who wants to help out by using it at this early stage, that would just be awesome! Otherwise it would probably be a good idea to check it out at a later stage, if interested. *As there's still a long way to go before I would consider it up to standard.*
**Thanks for all the positive feedback, it has been great motivation!**
Repository: [https://github.com/VernonGrant/sidekick.el](https://github.com/VernonGrant/sidekick.el)