reddit / emacs

emacs-groundup

cellular--automaton · 2022-05-16 00:16
​ [emacs-groundup](https://preview.redd.it/8ieegehzhqz81.png?width=940&format=png&auto=webp&s=92ae13ce9df380a3b9ae0029c2b73f9744f455f3) Hi! I wanted to introduce [emacs-groundup](https://gitlab.com/public-repositories/emacs-groundup) \- a config for elisp novices. Here are some of the main highlights: 1. For users looking to 'try emacs', it can be used as-is by setting only a handful of (including zero) parameters. 2. For users looking for a task-management workflow, emacs-groundup provides a solid foundation and lots of out-of-the-box functionality. 3. The intended user-base is elisp novices 'looking to get serious'. The code is amply commented, and package configurations are as decoupled as possile. Perfect to learn how to write elisp and how to configure some of the more commonly-used packages. 4. The system is pre-configured for python and Julia programming only. 5. The config uses a customised leuven theme and embraces a colourful aesthetic. Give it a go! All user feedback and contributions are welcome.
Tredxcvbnhgg · 2022-05-16 13:46
All I can say is wow. It’s pretty thorough.
cellular--automaton · 2022-05-16 14:16
Thank you! Hope people find it helpful/useful :)
[deleted] · 2022-05-16 18:50
[deleted]
mclearc · 2022-05-16 19:55
Nice setup. Concerning your wishlist, I had a few thoughts: 3. Straight: straight is pretty painless to setup and use. You can see how I've set it up [here.](https://github.com/Lambda-Emacs/lambda-emacs/blob/08f7e56aec8d8d8476c9c585a1f63899ba7c05d5/init.el#L113) 7. Meow: Meow is great. I switched from evil a few months ago and am pretty happy with it. I also dropped general.el for bind-key.el, which is included with use-package (which I see you are using anyway). You can look at my setup of meow [here](https://github.com/mclear-tools/dotemacs/blob/master/.local/lambda-library/lambda-user/cpm-setup-meow.el) and a more generic setup of keybindings [here](https://github.com/Lambda-Emacs/lambda-emacs/blob/main/.local/lambda-library/lambda-setup/lem-setup-keybindings.el). I haven't had any trouble with using this instead of general. 8. Workspaces: I have a package ([tabspaces](https://github.com/mclear-tools/tabspaces)) that sets up workspaces for use with project.el and tab-bar. That may be what you're looking for. There are also some links in the readme to other packages you might want to use instead.
cellular--automaton · 2022-05-16 21:15
Hi, thanks for all the suggestions! With `straight.el` I guess it's just a matter of finding the time. Thanks for sharing how you configure it! I really like how simple and organised `general.el`+`which-key` make my keybindings. I am also used to a lot of evil-style movements etc. But I am guessing it's just a matter of getting used to meow's way of doing things. `tabspaces` looks very cool! I'll definitely be checking it out. Thank you for your input and checking the config out!
eis3nheim · 2022-05-17 04:35
Could you please explain the workflow of the completion system, as I can see you have installed all the different completion packages?
cellular--automaton · 2022-05-17 07:03
Hi, Yeah, sure! I have tried to keep the completions as emacs-native as possible - so the principal packages to look at are the `vertico` family (`orderless`, `marginalia` and so on). You may also want to check out `embark` as lots of people use it with great success - I usually rely on keybindings so I don't offer it with emacs-groundup. `vertico` is for completions in the minibuffer (the area at the bottom where you see emacs suggestions, e.g., when you try to find a file with C-x C-f or `find-file` etc.). It is used in conjunction with `marginalia`, which provides useful information. For example, in `find-file`, it will add useful `ls`-style information like permissions, last-modified etc. In emacs-groundup you will notice that in the minibuffer, you can search for multi-part things without the need for maintaining strict order in your search-string -- for example, you can look for `find-file` using both `find file` and `file find`. This is thanks to the awesome `orderless` package. All these packages are all tightly integrated with the emacs native completion API and authored by the same author (and general set of collaborators). However, if you use emacs for programming, you will realise that `lsp-mode` does not offer out-of-the-box support for `corfu` (it is part of the `vertico`-family of packages and is used to create 'popup' suggestions in the buffer instead of the minibuffer). Consequently, for proramming-related completions in the buffer I use the package `company` which is a lot easier/painless to set-up with `lsp-mode`. This is the only package in emacs-groundup which uses a non-canonical completion-API. Of course, it is also one hell of a package with a HUGE set of options and fantastic emacs integration. If you get `corfu` working with emacs-groundup cleanly, I will be very happy to incorporate that into the framework. Cheers
JDRiverRun · 2022-05-17 12:33
Corfu support is quite simple to enable for lsp-mode, and works out of the box for eglot. Both use standard CAPF backends. A few details [here](https://github.com/minad/corfu/wiki).
cellular--automaton · 2022-05-17 15:59
Thanks! I knew about that page and have indeed worked through those tips. It's still a bit too technical for the kind of distro I am trying to create (in terms of configuration). When I was playing around with it, I remember there was an issue with getting the icons to show properly (I think I tried `kind-icons`). I will revisit `corfu` integration in a few months to see if things have become more noob-friendly!
JDRiverRun · 2022-05-17 23:10
>Online Yeah really if lsp-mode would stop hard-coding for company, either would work equally well. There is at least a variable to turn it off: `(lsp-completion-provider :none)`. The other issue is a bit more subtle: the idea of "completion styles" is sort of incompatible with lsp, since lsp servers have their own "style" altogether and don't care what emacs thinks. But there are some good workaround on that page. Author of kind-icons here; seems to just work for most, but feel free to report your issue if it recurs and I'll take a look.
cellular--automaton · 2022-05-18 09:05
Yeah, I figured as much. The official `lsp-mode` website explicitly mentions `company`, but not `corfu`. If `lsp-mode` wasn't as plug-and-play as it is, I'd probably move away from it. It's a huge library and offers too many functions that I don't need. On the other hand, `eglot` is 'harder' to set up for my noob-friendly distro. Thanks for offering to have a look at possible issues!